Skip to content

Instantly share code, notes, and snippets.

@3rdp
Last active June 17, 2016 22:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 3rdp/1218a1ac5b41fe3f7175e5d9f0edb4cd to your computer and use it in GitHub Desktop.
Save 3rdp/1218a1ac5b41fe3f7175e5d9f0edb4cd to your computer and use it in GitHub Desktop.
балуюсь с perl
use strict;
use warnings;
# print "Hello world. " x 80; # умножение
# print "\n\nHello world!";
# print "Hello" ge "wor";
# my $var = 'A string'; # объявляем скаляр
# print $var;
# my @arr = ( # массив
# "print ",
# "this ",
# 2,
# " ",
# );
# print @arr; # выводит весь массив от 0++
# print "@arr"; # тоже выводит, только добавляет пробелы
# print '@arr';
# print $arr[1]; # this
# print @arr[1]; # тоже самое, только с предупреждением
# print "\nКол-во элементов в массиве: " . (scalar @arr);
# print "\nПоследний индекс: " . $#arr . "\n";
# print @ARGV; # аргументы при запуске
# my $line = <STDIN>; # ввод текста в переменную
# print $line;
# <STDIN>; # просто ждешь пока юзер нажмет Enter
# # у 17.06 14:02 экз
# my $thx = '"Программируем веб-сайты с помощью Perl"';
# # $thx = '"Программируем веб-сайты с помощью Perl"';
# print "Спасибо за $thx\n\n";
# # 14:05
# my @list = ('a','c','b');
# my @sorted = sort @list;
# print @list, @sorted;
# my $str = 'Some string';
# substr($str,0,4) = 'Lower E'; # замена куска строки
# print "\n", $str;
# my %hash = (
# one => 'pizza',
# 'two' => 'cake',
# 3 => 11,
# '3' => 12, # просто переписывает пред
# 2 => 'cherry',
# 1 => 'dsd',
# );
# print keys %hash;
# print "\n\n", join" ", keys %hash; # доставляет :D same as join(" ", keys(%hash))
# # заметь как я пренебрегаю скобочками:
# print "\n\n", $hash{'2'}, ' ', $hash{one}, ' ', $hash{3}, ':', $hash{'3'};
# open FILE, 'one';
# print tell FILE, "\n"; # where: 0
# my $line = <FILE>;
# print tell FILE, "\n"; # where: 5
# $line = <FILE>;
# my @lines = <FILE>;
# print $line, "\n\n", @lines; # 'tricky'
# close FILE;
# if (0) {
# print "\nfirst";
# } elsif (1) {
# print "\ntwo";
# } else {
# print "\nthree";
# }
# my $dalek_prisoners = 5;
# while(my $dalek_prisoners = 5) { # eternal loop
# # while($dalek_prisoners) {
# # until(!$dalek_prisoners) {
# print "Ex-ter-min-ate\n";
# $dalek_prisoners--;
# }
# foreach my $i (0 .. 10) {
# # foreach my $i ( qw(One Two Three) ) {
# # print $_, "\n";
# print "$i squared is: ", $i*$i, "\n";
# }
# print $_."\n" foreach qw(One Two Three);
# foreach (0 .. 10) {
# print "$_ squared is: ", $_*$_, "\n";
# }
# # print $i == undef; # true, причем my в foreach необязательно (если не в strict mode, а то выкинет)
# my %months = (
# Jan => 31,
# Feb => 28,
# Mar => 31,
# Apr => 30,
# ),
# $flag;
# foreach (keys %months) { # default variable
# print "$_ has $months{$_} days\n";
# $_ == 'Apr' && !$flag ? sub { $flag = 1; redo; }->() : 0; # что-то страшное
# }
# print $_.' ' foreach keys %months;
# print $_.' ' foreach values %months;
# while (<STDIN>) {
# print;
# }
# # or
# while ( defined($_=<STDIN>) ) {
# print $_;
# }
# desire('pizza');
# sub desire {
# my ($str) = @_; # интересное решение
# print "\nI want $str\n" # последнюю строку можно не закрывать
# }
# sub first { &second };
# sub second { print @_."\n"; &third }
# sub third { print $_." " foreach @_ }
# first('one','two','three');
my $var = sub { return "\ntext\n" }->();
print $var;
my $str = "\nNeat string",
my $str2 = "\nNeat string";
substr($str,0,5) = 'Lower E';
$str2 =~ s/Neat/Lower E/; # ведь более удобно, чем высчитывать индексы?
print $str eq $str2; # пусто ???
print $str, $str2."\n";
sub routine2 {
my($n) = @_; #local variable and parameter
print $_."\n" foreach (0..$n); # $_ - default variable for FOREACH
};
routine2(5);
sub {
my($n) = @_; #local variable and parameter
print $_."\n" foreach (0..$n); # $_ - default variable for FOREACH
}->(5);
sub routine {
my($n) = $_[0]; #local variable and parameter
foreach (0..$n) { # pretty damn similar to "for i in range(0,6)" in Python
print $_; # $_ - default variable for FOREACH
print "\n";
}
}
&routine(5);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment