$stuff = "d:/learning/perl/tmp.txt";
open STUFF, $stuff or die "Cannot open $stuff for read :$!";
while (<STUFF>) {
my($line) = $_; # Good practice to always strip the trailing
chomp($line);
my @values = split(' ', $line);
foreach my $val (@values) {
if ($val == 1){
print "1 found";
}
elsif ($val =~ /hello/){
print "hello found";
}
elsif ($val =~ /"/*"/){ # I don't know how to handle here.
print "/* found";
}
print "\n";
}
}
Мои tmp.txt
:Как совместить «/ *» в регулярном выражении?
/* CheerStone ColdStunner
1 Cheer Rock
hello Boo Pedigree
Как обрабатывать последовательность символов /*
в моем коде?
Спасибо отметил, но название вопроса лучше свободны от неродственных комментариев. – pavium
Поскольку вы пытаетесь изучить Perl, вот несколько рекомендаций по стилю: во-первых, используйте три формы аргументов 'open':' open my $ fh, '<', $ filename', чтобы избежать любых неожиданностей, если '$ filename' начинается с специальные символы. Во-вторых, используйте лексические дескрипторы файлов, как показано выше. Файлы с файлами в формате Bareword представляют собой пакетный охват, а глобальные переменные затрудняют отслеживание проблем. В-третьих, назначьте ввод немедленно переменной, а не выполните ее в два этапа: 'while (my $ line = <$fh>) {chomp $ line; ...} ' –
Возможный дубликат [Как обрабатывать специальные символы в регулярном выражении Perl?] (Http://stackoverflow.com/questions/576435/how-do-i-handle-special-characters-in-a -perl-regex) – daxim