可以在Perl变量上使用grep吗?

Str*_*ure 1 perl grep

在Perl脚本中,是否有可能以某种方式有效地对Perl变量执行grep?一个等效的Perl函数同样可以接受,我只想让解决方案尽可能简单.

例如:

#!/usr/bin/perl
#!/bin/grep

$var="foobar";

$newvar="system('grep -o "foo" $var');

sprintf $newvar;
Run Code Online (Sandbox Code Playgroud)

我希望sprintf $newvar输出的地方foo.

也欢迎任何有关最佳实践的反馈.我对Perl并不是很熟悉.

gho*_*g74 5

你可以在Perl中使用正则表达式匹配.无需调用外部"grep"命令.

$var =~ /foo/;
Run Code Online (Sandbox Code Playgroud)

请阅读文档perlrequick,了解如何在变量中搜索模式.同样令人感兴趣的是Perl自己的grep.

$var="foobar";
if ( $var =~ /foo/){
  print "found foo\n";
}
Run Code Online (Sandbox Code Playgroud)