print "enter file name\n";
open (INFO, <>);
while ($line = <INFO>){
if ($line =~ m/(\d+)/) {
print "$1 \n";
}
}
我想在我的文件中找到任何数字并在不同的行上打印它们。但是,如果我的文件包含以下内容:
Hi there 45661 apples bananas 3 yes no maybe 11111
然后我的程序只打印45661而没有别的。我怎样才能打印出来
456661
3
1111
答案 0 :(得分:1)
您需要使用/g
修饰符将正则表达式置于while循环中:
print "enter file name\n";
chomp( my $filename = <STDIN> );
open my $fh, '<', $filename or die "Can't open $filename: $!";
while ( my $line = <$fh> ) {
while ( $line =~ /(\d+)/g ) {
print "$1\n";
}
}