1 / 9

Perl

Perl. Подпрограми. Дефиниране. Чрез служебната дума sub : sub subname { # subname - произволен валиден идентификатор. statement_1; statement_2; statement_3; } Пример : sub get_info { print ' Enter your user name: '; chomp ( $name =&lt;&gt;); print &quot; <br>Enter your password: &quot; ;

cade
Télécharger la présentation

Perl

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Perl Подпрограми

  2. Дефиниране • Чрез служебната дума sub: • subsubname{#subname - произволен валиден идентификатор. • statement_1; • statement_2; • statement_3; • } • Пример: • subget_info{ • print'Enter your user name: '; • chomp($name=<>); • print"\nEnter your password:"; • chomp($pass=<>); • return($name,$pass); • }

  3. Извикване • Чрез името на процедурата: • ($user_name, $user_pass) = get_info(); • print "Hello $user_name, your pass is: $user_pass !"; • Когато се извиква без параметри може и&subname, вместо • празните скоби: • ($user_name, $user_pass) = &get_info;

  4. Връщани стойности • Процедурите в Perl винаги връщат стойност - или явно, чрез • return : • sub get_info { • print 'Enter your user name: '; • chomp ( $name=<>); • print "\nEnter your password: "; • chomp ($pass=<>); • return ($name, $pass); • } • или като стойност на последния изчислен израз: • $x=3;$y=4; • print sum(); • sub sum { • $x+$y; • }

  5. Аргументи • Предават се чрез масив, в автоматичната променлива @_, която има • privateстатут за всяка отделна функция. • Пример: • print sum(2,3); • # вариант 1: • sub sum { • print "@_ \n"; # ако искаме да видим всички аргументи • $args_num=@_; # броят на получените аргументи - в случая: 2 • return $_[0]+$_[1]; • } • # вариант 2: • sub sum { • ($x,$y)=@_; # @_=(2,3), $x=2, $y=3 • return $x+$y; • } • # вариант 3: • sub sum { • $x=shift;# $x=2, @_=(3) • $y=shift; # $y=3, @_=() • return $x+$y; • }

  6. Променлив брой аргументи • !Гъвкавост при използване на функции с променлив брой аргументи: • print sum(1,2); • print sum(2,3,4); • # Следната дефиниция на • sub sum { • $sum=0; • foreach $ele (@_) { • sum+=$ele; • }; • return $sum; • }

  7. Глобални променливи • Глобални (за една функция ) променливи: • $sum=256; • print sum(2,3,4); • print "\n$sum"; • sub sum { • $sum=0; #$sum е глобална променлива • foreach $ele(@_){ • $sum+=$ele; • }; • return $sum; • }

  8. Локални променливи • Локални променливи: • Създават се чрез оператора my. Областта на видимост е в рамките на най-вътрешния обхващаш блок ! • my $i=0; • for (my $i=1; $i<=3; $i++){ • print "i=$i\n"; # i=1, i=2, i=3 • }; • print "\ni=$i\n"; # i=0

  9. Полу-локални променливи ? • Чрез local се създава динамично локално копие на глобална променлива, • което е видимо в блокав който е декларирано, както и във всички • вътрешни блокове. • $name='Original'; • edno(); • print "$name\n"; • sub edno { • local $name='Edno'; • print "$name\n"; • dve(); • print "$name\n"; • } • sub dve { • $name='Dve'; • }

More Related