$_ =~ /Storage/i && /15.178.209.194/
глупо. Это разбивается так: ($_ =~ /Storage/i) && (/15.178.209.194/)
. Либо используйте $_
постоянно, либо не используйте - операторы //
и s///
автоматически работают на $_
.
Также вы должны знать, что в регулярном выражении /15.178.209.194/
.
интерпретируется как любой символ. Либо избегайте их, либо используйте функцию index()
.
Кроме того, я бы порекомендовал разделять каждую строку, используя split()
. Это позволяет сравнивать каждый отдельный столбец. Вы можете использовать split()
с регулярным выражением, например, так: @array = split(/\s+/, $string);
.
Наконец, я не совсем уверен, для чего нужен $first
, но я замечаю, что все три строки выборки во входном сигнале запускают $first=0
, так как все они содержат этот IP и строку "storage".