[perl] コメント行の除去
コメント行を除きたい時が多々あるので、その方法をメモ。
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
open(my $fh, '<', '/tmp/hoge') or die "$!";
my @lines = <$fh>;
close($fh) or die "$!";
@lines = map { $_ =~ s/\r//; $_ =~ s/\n//; $_ } @lines;
print "[before]\n";
print Dumper @lines;
### コメント行除去
@lines = grep { ! /^\s*\#.*/ } @lines;
print "[after]\n";
print Dumper @lines;
実行
$ cat /tmp/hoge
hoge
#huga
#foo
#bar
piyo
$ ./removecomment.pl
[before]
$VAR1 = 'hoge';
$VAR2 = '#huga';
$VAR3 = ' #foo';
$VAR4 = ' #bar';
$VAR5 = 'piyo';
[after]
$VAR1 = 'hoge';
$VAR2 = 'piyo';