скрипт на perl'е

karina58

Народ, если кто шарит в перле, подскажите пожалуйста: есть скрипт на перле, он должен создавать файл. Есть подозрение, что программа, с которой он связывается, работает некорректно, поэтому хочу сам создать этот файл вручную. Подскажите, что он должен выдать на выходе, если все окей.(важен формат)
вот скрипт:
$AV_HOME="/opt/av";
$listev = "$AV_HOME/src/modules/io-drivers/misc/list-usb -s ";
$vendor = "0x046D";
$product = "0xC215";
open(DEVICES, "$listev |");
while(<DEVICES>) {
if (/^\s*\"(0x[0-9A-Fa-f]+)\"\s+\"(0x[0-9A-Fa-f]+)\"\s+\"(0x[0-9A-Fa-f]+)\"\s+\"(\/dev\/input\/event[0-9]+)\"/) {
if ($vendor eq $1 && $product eq $2) {
print "(set! joystick-device \"$4\")\n";
}
}
}

olena985

Мне кажется, что если все If сработают, то функция принт должна вывести строку
: (set! joystick-device -=тут значение переменной $4=- ) + перевод строки.

olena985

Захочешь создать файл "на запись" ручками, делай так:
open(XXX, ">path/yyy.txt") or die "ERROR";
...
print XXX "....";(тут запись строки в файл yyy.txt)
...
close(XXX) or print "ERROR";

karina58

мне как раз и не понятно, что за переменна $4? Там скорее всего должно вывестись в файл что-то вроде
( set! joystick-device "0x049f") поточнее можно сказать, что должно быть в кавычках? там ведь сравнивается с
$vendor = "0x046D";
$product = "0xC215";

qsk78

Переменная $4 -- это то, что нашлось по регескпу, заключенному в четвертые скобки. То есть в данном случае /dev/input/event<n>, где <n> -- неотрицательное целое число.

afo-aLLa1

ок, кажись понял, спасибо
Оставить комментарий
Имя или ник:
Комментарий: