2010-12-03 44 views
2

我想在perl中创建带有长度的字符串,例如7,但是“可见”内容,例如“a”。如何在Perl中添加空字符到字符串?

my $ test = ...;

打印$测试结果: “一” 打印长度($试验)结果:7

+1

可这有什么可能的用途? – Ether 2010-12-03 15:55:27

+0

@字符串的其他空填充可用于加密应用程序。 – RKeast 2014-07-30 16:45:49

回答

0

参见pack功能,也许。

11

您将空字符添加到字符串。为什么你想要这个超越了我,但你如何做到这一点如下所示。

{ow-loopkin:tmp:->perl 
$string = "e\0\0\0\0"; 
print length $string; 
[ctrl+d] 
5 
{ow-loopkin:tmp:-> 

您还可以使用包()来填充它与空值:

ow-loopkin:tmp:->perl 
$string = pack("Z6", 42); 
print length $string; 
[ctrl+d] 
6 
{ow-loopkin:tmp:-> 
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;