了解Perl变量

时间:2014-08-06 14:29:56

标签: perl

我刚参加了一个项目,我应该了解以前的人的剧本。

我是Perl的新手。有人可以告诉我这句话意味着什么吗?

my $name = $1;

如何为变量赋值$something?我试图打印它,但它给了我一个错误信息。

2 个答案:

答案 0 :(得分:5)

$1是一个特殊变量,用于返回正则表达式中的第一个捕获组。

例如,您可能会看到类似的内容:

my $string = 'this is an example of 34 a match! 99 foo bar';

$string =~ /\d+\s(.*?)(\d+)/;

在这种情况下,第一个捕获的组(a match!)将存储在变量$1中,第二个(99)将存储在$2中。

print "first capture group = $1\nsecond capture group = $2\n";

您可能想要重新分配这些:

my $match = $1;
my $number = $2;

答案 1 :(得分:0)

除了@fugu说,我想表达更多。当您使用$3时,$3中将没有任何内容,因为在该示例中,仅匹配2次。在perl中,使用了许多变量,例如$1$2$3,循环中的当前变量有$_; $_[0]$_[1],..用于函数中的变量; ARGV[0] ..用于脚本的argv,依此类推。使用这些来节省手动工作。