我想在perl中创建长度为的字符串,例如7,但是“可见”内容,例如“a”。
my $ test = ...;
打印$测试结果:“a” 打印长度($ test)结果:7
答案 0 :(得分:12)
您可以在字符串中添加空字符。为什么你想要这个超出我,但你如何做到这一点如下所示。
{ow-loopkin:tmp:->perl
$string = "e\0\0\0\0";
print length $string;
[ctrl+d]
5
{ow-loopkin:tmp:->
您也可以使用pack()用空值填充它:
ow-loopkin:tmp:->perl
$string = pack("Z6", 42);
print length $string;
[ctrl+d]
6
{ow-loopkin:tmp:->
答案 1 :(得分:0)
用法示例:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
require 'syscall.ph';
my $path = '/root/target';
my $buf = "\0"x512; # $buf (pointer) must be large enough to receive data
# See statf(2) on Linux
syscall(&SYS_statfs, $path, $buf) == 0 or die($!);
my @st = unpack 'L7', $buf;
print Dumper(\@st);
1;
答案 2 :(得分:-1)
请参阅pack
函数。