четверг, 2 сентября 2010 г.

Perl. Восстановление переменной в цикле

use strict;
use warnings;
use 5.010;

my @languages = qw/Perl PHP Ruby/;

my $lang = 'Python';

foreach $lang (@languages){
    say $lang;
}

say '===========Loop is end!==========';
say $lang;

В результате получим:
Perl
PHP
Ruby
===========Loop is end!==========
Python

Таким образом Perl, при входе в цикл foreach сохраняет значение управляющей переменной, а после выхода из цикла восстанавливает ее.
Кроме того при модификации управляющей переменной - меняется и элемент массива:

use strict;
use warnings;
use Data::Dumper;
use 5.010;

my @languages = qw/Perl PHP Ruby/;

my $lang = 'Python';

foreach $lang (@languages){
    $lang = "$lang is cool!" if $lang eq 'Perl';
    say $lang;
}


say Dumper(\@languages);

Получим:
Perl is cool!
PHP
Ruby
$VAR1 = [
'Perl is cool!',
'PHP',
'Ruby'
];

Комментариев нет: