По мотивам стандартной документации Perlvar.

Считать целиком файл в переменную:

open (MOCK, $filename) or die "$!";
local $/;
# переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS)
$_ =<MOCK> ;    # захавать моск файл целиком
close (MOCK);

Напечатать содержимое массива:
@a=qw( 1 2fewf wf g ag f);
local $,="\n";
# переопределяем встроенную переменную "разделитель полей" ($, или $OUTPUT_FIELD_SEPARATOR или $OFS)
print @a;


Печатать все строки после строки 25
perl -n -e 'print if $.>25' file.txt # используем встроенную переменную "номер текущей строки" ($. или $INPUT_LINE_NUMBER или $NR)

Напечатать переменные среды:
perl -e ‘while ( ($a,$b)=each(%ENV) ) { print «$a=$b\n»; }’; # Используем встроенный хэш %ENV, который содержит переменные среды окружения

Использовать имя программы:
print "Usage: $0 [-k|--kill-all-humans]\n";
# используем встроенную переменную "имя исполняемой программы" ($0 или $PROGRAM_NAME)

Посмотреть версию perl:
print $];
print $^V;

Посмотреть операционную систему:
print $^O;
print POSIX::uname()
;

Посмотреть, когда была запущена программа:
print $^T;
# в секундах с 1970 года, смотри time(). Встроенная переменная $^T или $BASETIME

Напечатать переменные среды:
perl -e 'while ( ($a,$b)=each(%ENV) ) { print "$a=$b\n"; }';
# Используем встроенный хэш %ENV

2 комментария на запись “Снова perl. Немного о встроенных переменных”

  1. freefd пишет:

    никогда, никогда не стоит делать local $_ = ;
    это плохой пример.

  2. ikorolev пишет:

    Вот блин, согласен — машинально влепил. Исправляюсь ;)