.


:




:

































 

 

 

 


3. CGI/Perl




, 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.





:


: 2016-07-29; !; : 446 |


:

:

, .
==> ...

1507 - | 1273 -


© 2015-2024 lektsii.org - -

: 0.145 .