【发布时间】:2013-03-15 17:53:53
【问题描述】:
我正在尝试编写一个 perl 模块,该模块将另一个文件作为输入并打印所有使用语句(严格和警告除外)
my @result = grep /use\s+([^;(strict|warnings)]+)/, @file;
这打印:
use Package1;
use Package2;
但是我只想要“Package1”部分。所以当使用地图时:
my @result = map /use\s+([^;(strict|warnings)]+)/, @file;
这会返回错误的值。(返回前 2 或 3 个字符)
my @result = map /use\s+([^;]+)/, @file;
返回 Package1,Package2,strict,warnings。
我可以知道如何更正第一个 map 语句中的正则表达式吗?
谢谢
【问题讨论】:
-
这只是学习正则表达式和 map/grep 的测试用例,还是您实际上是在尝试查找 use/require 语句?如果是后者,则有执行此操作的模块。
-
@JoelBerger 后者。你能指出我正确的方向吗?谢谢
-
看来 Schwern 打败了我。也就是说,请参阅我的评论。