Я попробовал небольшой тест: заменить x
в x|y|z|a
на w
, поэтому я попробовал:
echo "x|y|z|a" | perl -lne '@arr=split /|/;$arr[0]='w';$_=join "|",@arr;print $_;'
это дало мне:
> echo "x|y|z|a" | perl -lne '@arr=split /|/;$arr[0]='w';$_=join "|",@arr;print $_;'
w|||y|||z|||a
>
на удивление он дал 3 разделителя полей вместо одного. может кто-нибудь сказать мне, где я ошибаюсь?
|
— это специальный символ, означающий или, поэтому/|/
означает «Соответствие пустой строке» или «пустая строка». Это будет соответствовать каждый раз. 20.05.2013