В некоторых ситуациях «изящным» способом является использование переключателя -n
. Он неявно оборачивает ваш код циклом while(<>)
и гибко обрабатывает ввод.
В slickestWay.pl
:
#!/usr/bin/perl -n
BEGIN: {
# do something once here
}
# implement logic for a single line of input
print $result;
В командной строке:
chmod +x slickestWay.pl
Теперь, в зависимости от вашего ввода, выполните одно из следующих действий:
Ожидание ввода пользователя
./slickestWay.pl
Чтение из файла (ов) с именами в аргументах (перенаправление не требуется)
./slickestWay.pl input.txt
./slickestWay.pl input.txt moreInput.txt
Использовать трубу
someOtherScript | ./slickestWay.pl
Блок BEGIN
необходим, если вам нужно инициализировать некоторый объектно-ориентированный интерфейс, такой как Text :: CSV или другой, который вы можете добавить в shebang с помощью -M
.
-l
и -p
также ваши друзья.