У меня есть файл, который будет иметь такие строки,Perl Split работать с запятой
<tag host="xyz|abc" some info />
<tag host="ijk,cdf" some info />
Я получаю информацию о хосте с помощью сопоставления с образцом, и я хотел бы разделить значение хоста , По какой-то причине следующий код, похоже, не работает для запятой, хотя выглядит корректно.
if($line =~ m/(\s\S)*host=\"(\S+)\"(\s\S)*/)
{
($val) = ($2);
$val=~tr/!$()//ds;
my @values;
if($val =~ m/((\S+)\|(\S+))*/)
{
@values=split('\|',$val);
}
else
{
@values=split(',',$val);
}
#Perform some action on Values.
}
Может ли кто-нибудь помочь мне в этом? Заранее спасибо.
Что делает ваш вход выглядит? – squiguy
Зачем ломать его в 'if-else'? Почему бы просто не разделить запятую или трубку (например, 'split/[, \ |] /, $ val;')? – vol7ron