У меня есть скаляр, значение которого будет таким.соответствие шаблону в одной строке в perl
Sun Sep 9 12:14:56 2012 : [Pro] Write to file(/root/mesh/MeshBed/trunk/meshproc/neighInfo/neighbors-list_152. 14.189.6) : #ip=152.14.189.99 neighinfo=NULL mac=06:02:6F:A7:3E:BC#
Я хочу взять TIMEFIELD (12:14:38) и ф (152.14.189.99) от этого в Perl. Я попытался использовать это.
$p =~ /ip\=(\.\d+\.\d+\.\d+\d+)/;
print $1;
Это метация ошибки компиляции. Может ли кто-нибудь решить это.
#!/usr/bin/perl -w
use strict;
use warnings;
my $p = "Sun Sep 9 12:14:56 2012 : [Pro] Write to file(/root/mesh/MeshBed/trunk/meshproc/neighInfo/neighbors-list_152. 14.189.6) : #ip=152.14.189.99 neighinfo=NULL mac=06:02:6F:A7:3E:BC#";
$p =~ /ip\=(\.\d+\.\d+\.\d+\d+)/;
print $1;
Какую ошибку вы получаете? Вы уверены, что это ошибка компиляции, а не ошибка времени выполнения? – epsalon
Глобальный символ «$ p» требует явного имени пакета в ./patternmatching.pl строке 8. Выполнение ./patternmatching.pl отменено из-за ошибок компиляции. – Raj
Каков полный текст вашего скрипта? Вы ищете регулярное выражение в переменной '$ p', которая никогда не определяется. – epsalon