从Perl中的变量读取

时间:2012-07-23 02:01:04

标签: perl variables input

我在Perl中的一个变量中存储了很多行。

我想知道是否可以使用<>读取这些行。操作

3 个答案:

答案 0 :(得分:14)

如果你真的必须,你可以打开一个文件句柄。

use strict;
use warnings;

my $lines = "one\ntwo\nthree";
open my $fh, "<", \$lines;

while( <$fh> ) { 
    print "line $.: $_";
}

或者,如果你已经把内存中的东西拿来了,你可以把它分成一个数组:

my @lines = split /\n/, $lines;   # or whatever
foreach my $line( @lines ) { 
    # do stuff
}

这可能更容易阅读和维护。

答案 1 :(得分:7)

是。如perldoc -f open中所述,您可以将文件句柄打开为标量变量。

my $data = <<'';
line1
line2
line3

open my $fh, '<', \$data;
while (<$fh>) {
    chomp;
    print "[[ $_ ]]\n";
}

# prints
# [[ line1 ]]
# [[ line2 ]]
# [[ line3 ]]

答案 2 :(得分:0)

我找到了一个有用的选择,
它没有使用&lt;&gt;但就好像它确实一样

for (split /^/, $lines) {
   ...
}

http://www.perlmonks.org/?node_id=745018