我有一个标量变量$var
,其中包含10个字节。要删除我使用的那10个字节
$var =~ s/^(.{$numberOfbytes})//;
如果少于10个字节,这可以正常工作。但是我希望一次删除超过4500个字节。我怎么能这样做?
答案 0 :(得分:9)
不要使用正则表达式;相反,使用substr
:
my $manyBytes = substr($var, 0, 4500, '');
最后一个参数使得从$var
中删除了4500个字节。 4500字节而不是$1
,现在位于$manyBytes
。
答案 1 :(得分:1)
$var = substr($var, 4500);
或
substr($var, 0, 4500, '');
后者返回删除的字符。
答案 2 :(得分:1)
要删除字符串开头的指定数量的字符,请使用substr:
#!/usr/bin/env perl
use strict;
use warnings;
my $var = "The quick brown fox jumped over the lazy dog.";
my $numberOfbytes = 32;
$var = substr($var, $numberOfbytes);
print "Result: [$var]\n";
预期结果:
Result: [the lazy dog.]
答案 3 :(得分:0)
我错过了s /// s的s来使其适用于任意字节。 以下代码工作正常。
$numberOfbytes = 4500;
$var=~ s/^(.{$numberOfbytes})//s;
$removedBytes = $1;