, Perl, , C. :
#!/usr/local/bin/perl w
print("Hello, world\n"); #3.1-
print "I live in Minsk,\n", "I work hire", "\n";
print ('Hello, world\n');
:
Hello, world
I live in Minsk,
I work hire
Hello, world \n
main(), , . Perl , (#), . , \n , .
UNIX Perl CGI , perl.exe. , Windows , / \, c:\perl5\bin\perl.
, pr31.pl : perl pr31.pl
. .
:
#!/usr/local/bin/perl -w
#3.2-
# -w
print "What is yure name?:";
$who =<STDIN>;
$where = '';
print "My name is $who,\n"; #
print "I live in \t$where\n",
:
What is yure name?:valera
My name is valera,
I live in
<STDIN>. , Perl , .
Perl - , , (). Perl , .
$ - , @ - , % - . $varName @varName .
,
# 3.3:
$str=:;
$a = 2;
$b = 6;
$c = $a. $b; # .
$d = $c / 2;
print $str, $d; # 13
:
:13
. , . Perl . . :
#Ghbvth 3.4:
@emptyArray = ();
@numberArray = (12, 014, 0x0c, 34.34, 23.3E-3);
@stringArray = ("This", "is", 'an', "array", 'of', "strings");
|
|
@mixedArray = ("This ", 10, " is ", 'a', " mixed array ", ' of ', " items");
print "Here is an empty array:". @emptyArray."\n";
print @numberArray; print "\n";
print @stringArray; print "\n";
print @mixedArray; print "\n";
:
Here is an empty array:0
12121234.340.0233
Thisisanarrayofstrings
This 10 is a mixed array of items
"\n" . print @numberArray. "\n";, Perl @numberArray , . @emptyArray, 0.
.
@array = (1..5);
$numberOfElements = @array;
$doubleTheSize = 2 * @array;
print "The number of array elements is: ". $numberOfElements. "\n";
print "Double the number of array elements is: ". $doubleTheSize. "\n";
:
The number of array elements is: 5
Double the number of array elements is:10
:
@smallArrayOne = (5..10);
@smallArrayTwo = (1..5);
@largeArray = (@smallArrayOne, @smallArrayTwo);
print @largeArray;
:
C++, , , . :
@array = (1..5);
print @array; print "\n";
print $array[-1]; print $array[-2];
print $array[-3]; print $array[-4];
print $array[-5]; print "\n";
:
:
@array = ("One", "Two", "Three", "Four");
($first, $third) = @array[0, 2];
@half = @array[2, 3];
print("\@array=@array\n");
print("\$first=$first \$third=$third\n");
print("\@half=@half\n");
@array[0, 3] = @array[3, 0];
print("\@array=@array\n");
:
@array=One Two Three Four
$first=One $third=Three
@half=Three Four
@array=Four Two Three One
, Perl . .
@A=(1,2,3);
@B = (4, 5, 6);
@C = (7, 8, 9);
@D = (@A, @B, @C);
print @D;
D 1 9
qw() :
@passwords = qw(pas1 pas2 pas3);
, . $passwords[0] pas1, $passwords[1] pas2, $passwords[2] pas3.
c sort(() , . print sort(Beta,Gamma,Alpha); AlphaBetaGamma. join() . , , , . . print join (:,Name,Address,Phone); Name: Address: Phone. push() , - , . :
|
|
# 3.10:
@b = (Beta, Gamma, Alpha);
push @b, Tetta; # @b
@w = sort @b; # @b
$i=0; # $c
foreach (@w) {
print $w[$i]\n; #
$i++;
}
:
Alpha
Beta
Gamma
Tetta
, <STDIN> . , , Ctrl+Z. , [Ctrl + Z], , .
#!/usr/local/bin/perl -w
#3.12-
print "Enter an array elements:";
@a =<STDIN>;
print "Array: @a \n";
:
Enter an array elements: aaaa<>
bbbb<>
cccc<>
Ctrl+Z
Array: aaaa
bbbb
cccc
.
%associativeArray = ("Jack A.", "Dec 2", "Joe B.",
"June 2", "Jane C.", "Feb 13");
$associativeArray{"Jennifer S."} = "Mar 20";
print "Joe's birthday is: ". $associativeArray{"Joe B."}. "\n";
print "Jennifer's birthday is: ". $associativeArray{"Jennifer S."}. "\n";
:
Joe's birthday is: June 2
Jennifer's birthday is: Mar 20
, , , . , , , () , ,
%fruit=(Green,Apple,Orange,Orange,Yellow,Banana);
print $fruit{Yellow};
- , , Banana. Green, Apple.
() (). ID , . .
%Folk = ('BG', 'Bill Gates',
'PR', 'SuperProgramer',
'DS', 'Djon Smith');
%State = ('BG', 'California',
'PR', 'Minsk',
'DS', 'Washington');
%Job = ('BG', 'work in Microsoft',
'PR', 'work as programmer',
'DS', 'work as writer');
foreach $person ('PR', 'BG', 'DS') {
print "My name is $Folk{$person},\n",
"I live in $State{$person},\n",
"I $Job{$person} there.\n\n";
}
:
My name is SuperProgramer,
I live in Minsk,
I work as programmer there.
My name is Bill Gates,
I live in California,
I work in Microsoft there.
My name is Djon Smith,
I live in Washington,
I work as writer there.
, : %Job = (BG => work in Microsoft, PR => work as programmer, DS => work as writer);
, . , foreach. keys values.
|
|
%ENV , . , %ENV{PATH} . each, , . ,
while (($key,$value) = each %ENV) {
print $key = $value\n;
}
@array = (1..5);
print "@array\n";
:
1 2 3 4 5
, :
$word = "large";
print "He was a $wordr fellow.";
:
He was a fellow.
$wordr , "He was a larger fellow". :
$word = "large";
print "He was a ". $word. "r fellow.";
, :
$" . $" = "," , .
$" = ",";
@array = (1..5);
print "@array\n";
:
1,2,3,4,5
, $" = "; " .
Perl , C++. :
if (EXPR) {BLOCK}
if (EXPR){ BLOCK} else{ BLOCK}
if (EXPR) BLOCK elsif (EXPR) {BLOCK} else {BLOCK}
#
$var = 1;
if ($var == 0)
{ print "\$var = 0\n"; }
elsif ($var == 1)
{ print "\$var = 1\n"; }
else
{ print " \$var\n"; }
: $var = 1
Perl :
LABEL while (EXPR){ BLOCK}
LABEL while (EXPR) {BLOCK} continue{ BLOCK}
LABEL for (EXPR; EXPR; EXPR) {BLOCK}
LABEL foreach VAR (LIST) {BLOCK}
while BLOCK EXPR = true. continue EXPR. LABEL , , , next, last redo. , . next continue .
M1:
while ($i < 6)
{ ++$i; # 1
next M1 if $i < 3; # $i < 3
++$i; # 1
}
continue
{ print "$i "; # $i
}
: 1 2 4 6
last - break . redo EXPR continue.
:
M1:
while ($i < 6)
{ ++$i; # 1
redo M1 if $i == 3; # $i = 3
++$i; # 1
}
continue { print "$i "; # $i
}
: 2 5 7
for for .
foreach : LABEL foreach VAR (LIST) {BLOCK}
VAR LIST . foreach for - .
:
@ = ("","",""); #
|
|
foreach $i (@)
{ print $i," "; # $i
}
for $i (3,5,7)
{ print "$i "; }
:
3 5 7
Perl goto.
:
#!/usr/local/bin/perl
@passwords = qw (inet basic net);
print Enter the login: ;
$login = <STDIN>;
chomp ($login);
if ($login eq Root) {
print Hello, Administrator! Glad to see you again!\n ;}
else { print Enter password: ;
$pass = <STDIN>;
chomp ($pass);
$i = 0; $flag = no;
while ($flag eq no) {
if ($passwords[$i] eq $pass) {$flag = yes;}
elseif ($i <2) {$i = $i + 1;}
else {print Incorrect password for $login, try again.\n;
print Enter password: ;
$pass = <STDIN>;
chomp ($pass);
$i = 0; }
}
}
@passwords : inet, basic, net. qw(), , , @passwords = (inet, basic, net); print print Enter the login: .
, Perl <STDIN>. $login , , Root Root\n. , chomp, , : chomp ($login);
$pass @passwords $passwords[$i] eq $pass. $i = $i + 1; .
():
sub ; #- . .
sub ; #- .
sub () {;} #- , .
:
( ); # '&' .
; # .
&; # @_
@_, . $_[0] - , $_[1] - .. - . return.
, , my(). , .
# .
print fact(3); # 3*2*1
sub fact # .
{ my $m; # private
$m = $_[0];
return 1 if $m <= 1;
return($m * fact($m -1)); }
my : my() = ; : my($m) = $_[0];
Perl - . : packages _;. . main. , '::' . : $main::var1. : use qw(1 2);
Perl - , () . BEGIN END.
Perl Perl pragma ( ) . Pragma : use ;
pragma :
diagnostics - ; integer - ; overload - h ; sigtrap - ; strict - "" ; subs - .
: AnyDBM_File - . Carp - . Config - Perl. Cwd - . English - . Env - . ExtUtils::MakeMaker - Makefile. File::Basename - . File::Find - . File::Path / . Net::Ping - . Socket - . .
|
|
, Perl, CPAN. .
: (read), (append) (write). read : open (HANDLE,filename.txt);
HANDLE . , (<>):
open (HANDLE,filename.txt);
while (<HANDLE>){
#
}
open() , (>). , . , print:
open (HANDLE,>filename.txt);
print HANDLE ...;
(Append) :
open (HANDLE,>>filename.txt);
print HANDLE ...;
(>>). , , . , , .
open() true, false. close(HANDLE). open() die. , - . die .
open (HANDLE,>>f.txt)||die $!\n;
die . , , . Perl $!. Ȼ (||).
.
$filename = filename.txt;
if (-e $filename) {
print $filename \n;}
else { print $filename \n;}
- , -e -r, w. :
$filename = <STDIN>;
chomp ($filename);#
if (-r $filename && -w $filename) {
# ,
}
, :
@files = <*.txt>;
foreach (@files) {
print $_ is readable\n if -r;
}
, 20, true false.
Perl Windows ( ), - , :
open (HANDLE,c:/scripts/newfile.txt) || die Error opening c:/scripts/newfile.txt $!\n;
close (HANDLE);
Common Gateway Interface
CGI Web- , Web-. CGI ++, Visual Basic, . Perl , Perl .
, Web-. Perl. Perl- Internet. : www.freescripts.com, www.scripts.ru.