Как написать "Hello world" на Perl

Есть добрая традиция что изучения нового языка программирования начинается с написания простой программы которая выводит на экран текст Hello, world!.

На языке программирования Perl есть несколько вариантов как можно решить эту задачу.

Сохранить код программы в файл

Самый стандартный вариант для того чтобы написать Hello, world! на Perl — это создать файл hello.pl со таким содержимым:

▶ Run
#!/usr/bin/perl

print 'Hello, world!';

И выполнить в консоли:

$ perl hello.pl
Hello, world!

(Если под рукой у вас нет компьютера с Perl, то вы можете запустить этот код в браузере — https://PerlBanjo.com/5a5b1759f0 ).

Использовать однострочник

Другой достаточно популярный способ для того чтобы вывести Hello, world! — использовать однострочник. Не создавать файл с текстом программы, а всю программу набрать в командной строке:

$ perl -e 'print "Hello, world!";'
Hello, world!

(И вот ссылка на этот код для запуска в браузере https://PerlBanjo.com/62a99008d7 ).

Нестандартные способы

Создать файл с кодом print 'Hello, world!';, или использовать простой однострочник — это то как нужно писать Hello, world! программу.

Но кроме этих двух стандартных способов есть еще куча вариантов как с помощью Perl можно вывести на экран текст Hello, world!. Ниже несколько примеров. Все эти программы выводят на экран текст Hello, world! используя разнообразные трюки. В мире языка программирования Perl есть искусство вывести на экран строчку текста как можно более нестандартным способом (википедия ). Тут приводятся несколько подобных программ.

▶ Run
#!/usr/bin/perl

$_='loH,oe! lrdlwdo';$_.=$1,print$2while s/(..)(.)//;

Следующие две программы созданы с помощью Perl библиотеки Acme::EyeDrops .

Программа, которая выводит текст Hello, world! используя только символы пунктуации и код use re 'eval';:

▶ Run
use re 'eval';
''=~('('.'?'.'{'.('`'|'%').('['^'-').('`'|'!').('`'|',').'"'
.'#'.'!'.'/'.('['^'.').('['^'(').('['^')').'/'.('`'|('"')).(
'`'|')').('`'|'.').'/'.('['^'+').('`'|'%').('['^')').(('`')|
',').('!'^'+').('!'^'+').('['^'+').('['^')').('`'|')').('`'|
'.').('['^'/').('{'^'[')."'".('`'^'(').('`'|'%').('`'|',').(
'`'|',').('`'|'/').','.('{'^'[').('['^',').('`'|'/').(('[')^
')').('`'|',').('`'|'$').'!'."'".';'.('!'^'+').'"'.'}'.')');

Удивительно, но вот это псевдографика с изображением верблюда — это тоже работающая Perl программа, которая выводит на экран Hello, world!:

▶ Run
use re 'eval';
                                      ''=~('('.'?'
           .'{'.(                   '`'|'%').("\["^
        '-').('`'|                '!').('`'|',').'"'
 .'#'."\!".  "\/".(              '['^'.').('['^'(').(
'['^')').'/'.(('`')|            '"').('`'|')').(('`')|
'.').'/'.('['^"\+").(          '`'|'%').('['^')').('`'
  |',').('!'^('+')).(        '!'^'+').('['^'+').(('[')^
       ')').('`'|')')      .('`'|'.').('['^'/').('{'^'['
      )."'".('`'^'('     ).('`'|'%').('`'|',').('`'|',').
     ('`'|'/').','.(   '{'^'[').('['^',').('`'|'/').("\["^
    ')').('`'|',').   ('`'|'$').'!'."'".';'.('!'^'+').('"').
    '}'.')');$:='.'  ^'~';$~='@'|'(';$^=')'^'[';$/='`'|'.';$,
    ='('^('}');$\=  '`'|'!';$:=')'^'}';$~='*'|'`';$^='+'^'_';
    $/='&'|'@';$,=  '['&'~';$\=','^'|';$:='.'^'~';$~='@'|"\(";
    $^=')'^'[';$/='`'|'.';$,='('^'}';$\='`'|'!';$:=')'^'}';$~=
    '*'|'`';$^='+'^'_';$/='&'|'@';$,='['&'~';$\=','^'|';$:='.'^
     '~';$~='@'|'(';$^=')'^'[';$/='`'|'.';$,='('^'}';$\='`'|'!'
     ;$:=')'^'}';$~='*'|'`';$^='+'^'_';$/='&'|'@';$,='['&'~';$\=
      ','^'|';$:='.'^'~';$~='@'|'(';$^=')'^'[';$/='`'|'.';$,='('^
       '}';$\='`'|'!';$:=')'^'}';$~='*'|'`';$^='+'^'_';$/='&'|'@'
        ;$,='['&'~';$\=','^'|';$:='.'^'~';$~='@'|'(';$^="\)"^ '['
         ;$/='`'|'.';$,='('^'}';$\='`'|'!';$:=')'^'}';$~='*'  |((
          '`'));$^='+'^'_';$/='&'|'@';$,='['&'~';$\ =','^'|'  ;$:
            ='.'^'~';$~='@'|'(';$^=')'^'[';$/='`'|  '.';$,=   '('
             ^'}'; $\='`'|'!';$:=')'^'}';$~="\*"|   '`';$^=   '+'
                   ^'_';$/='&'|'@';$,='['&'~';$\    =(',')^   '|'
                   ;$:='.'^    '~';$~='@' |"\(";     $^=')'   ^+
                   '[';$/=     '`'|'.';   $,='('     ^"\}";  $\
                   =('`')|     "\!";$:=   "\)"^       "\}";  (
                   ($~))=      '*'|'`';   ($^)         ='+'
                   ^"\_";     $/=('&')|   '@';         ($,)
                    ='['&     "\~";$\=    ','^         '|';
                    ($:)=     '.'^'~'     ;$~=         '@'|
                    '(';     $^=')'       ^'['         ;$/=
                    '`'|     '.'          ;$,=         '('^
                    '}';      $\=         '`'          |((
                    '!'        ));       $:=           ')'
                    ^((         '}'     ));            $~=
                    '*'          |((   '`'              ))
                    ;(             ($^))=               ((
                    ((              '+'))               ))
                    ^+             "\_";$/=             ((
                   '&'            ))|+ "\@";            $,
                  =((           '['))&  '~';           $\=
                 ','^         "\|";$:=   '.'          ^'~'
               ;($~)=                                ('@')|
             "\(";$^=                               ')'^'['

Другие статьи

Комментарии