Perl eval限制了块的大小?

时间:2014-03-06 19:52:05

标签: perl eval

我有一个简单的Perl程序,它只是将从文件读取的字符串连接到前缀'qr'

  my $regex = eval 'qr'.$line;   
  my $myLength = length($regex);
  print "Length of string: $myLength\n";

$line的大小非常大(~100000个字符)。似乎eval拒绝工作。我得到的$myLength只有0,而我仍然可以打印$line。你对这个问题有什么建议吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

Perl eval没有这样的限制;以下对我没有任何错误,例如:

my $line = '/' . 'x' x 100000 . '/';
my $regex = eval 'qr' . $line;
print "error: $@\n" if $@;
my $myLength = length($regex);
print "Length of string: $myLength\n";

输出:

Length of string: 100005

你的输入有问题;在eval之后检查$ @以查看内容。