Доброго дня.
Нудна помощь в написании скрипта на perl. Уже третий день бюсь над небольшим куском кода и не могу понять где допускаю ошибку. Перечитал все мануалы и вроде написал все правильно, вот только результат совсем не тот который должен получиться.
У меня есть файл в котором записано куча строк со значениями. Мне нужно найти все значения которые записаны после текстового тега target. Чтобы на выходе был результат:
Цитата:
Ниже привожу пример написанного кода который не хочет работать:
Код: #!/usr/local/avalon/bin/perl
#use strict;
#use warnings;
my $string = "target --default--
probe-vnc = false
probe-vnc = false
target cpu1
link-target = /Devices/Computers/Win2000/10.76.144.251/cpu1
target temp_1
link-target = /Devices/Switches/IOS/10.100.16.12/temp_1
target vlan16
link-target = /Devices/Interfaces/10.100.16.12/vlan16
target ping
link-target = /Devices/Services/10.100.16.12/ping";
if ($string =~ m/(^target)/i) {
$test1 = $'; #возвращаю строку после искомого текста
$test1 =~ s/^\s+//; #убираю пустоты
$test1 =~ s/\s+$//; #убираю пустоты
if ($test1 =~ m/(^--default--)/i){ #значение default пропускаю
print "No", "\n"
} else {
print $test1, "\n"; # полученный результат
}
}
Нудна помощь в написании скрипта на perl. Уже третий день бюсь над небольшим куском кода и не могу понять где допускаю ошибку. Перечитал все мануалы и вроде написал все правильно, вот только результат совсем не тот который должен получиться.
У меня есть файл в котором записано куча строк со значениями. Мне нужно найти все значения которые записаны после текстового тега target. Чтобы на выходе был результат:
Цитата:
cpu1
temp_1
vlan16
ping
и так далее
Ниже привожу пример написанного кода который не хочет работать:
Код: #!/usr/local/avalon/bin/perl
#use strict;
#use warnings;
my $string = "target --default--
probe-vnc = false
probe-vnc = false
target cpu1
link-target = /Devices/Computers/Win2000/10.76.144.251/cpu1
target temp_1
link-target = /Devices/Switches/IOS/10.100.16.12/temp_1
target vlan16
link-target = /Devices/Interfaces/10.100.16.12/vlan16
target ping
link-target = /Devices/Services/10.100.16.12/ping";
if ($string =~ m/(^target)/i) {
$test1 = $'; #возвращаю строку после искомого текста
$test1 =~ s/^\s+//; #убираю пустоты
$test1 =~ s/\s+$//; #убираю пустоты
if ($test1 =~ m/(^--default--)/i){ #значение default пропускаю
print "No", "\n"
} else {
print $test1, "\n"; # полученный результат
}
}