[Moscow.pm] Иногда вещи не то , чем кажутся

Alex Shatlovsky shatlovsky на gmail.com
Ср Июн 4 07:54:41 PDT 2008


Здравствуйте, Anatoly.

Вы писали 4 июня 2008 г., 18:19:03:

> Ну или:

my %pp = $q->>Vars();
> $pp{arr} = $a_ref;
> say "3. container ref=" . ref \%$pp;
> say "3. val=" . $pp{arr};
> say "3. ref=" . ref $pp{arr};

> Документация решает:

Да, действительно.
Но интересно -- это только у меня вызывают вопросы подобные
конструктивные решения?

--

> The Vars() method does this. Called in a scalar context, it returns
> the parameter list as a tied hash reference. Changing a key changes
> the value of the parameter in the underlying CGI parameter list.
> Called in a list context, it returns the parameter list as an
> ordinary hash. This allows you to read the contents of the parameter list, but not to change it.

> 4 июня 2008 г. 18:11 пользователь Alex Shatlovsky <shatlovsky на gmail.com> написал:
> Здравствуйте, Vladimir.

> Вы писали 4 июня 2008 г., 17:47:44:

>> On Wednesday 04 June 2008 17:45:14 Alex Shatlovsky wrote:
>>> Здравствуйте,
>>>
>>> Исходный код примера:
>>> ================================
>>> #!/usr/bin/perl -w
>>>
>>> use strict;
>>> use CGI;
>>>
>>> sub say { print join "", @_, "\n"; }
>>>
>>> my $p = {};
>>> my @arr = (1,2,3);
>>>
>>> my $a_ref = \@arr;
>>> $p->{arr} = $a_ref;
>>> say "1. container ref=" . ref $p;
>>> say "1. val=" . $p->{arr};
>>> say "1. ref=" . ref $p->{arr};
>>>
>>> my $q = new CGI;
>>> my $pp = $q->Vars();
>>> $pp->{arr} = $a_ref;
>>> say "2. container ref=" . ref $pp;
>>> say "2. val=" . $pp->{arr};
>>> say "2. ref=" . ref $pp->{arr};

>> say "3. tied = " . tied($pp);

> Угу, только немного иначе:
> say "3. tied = " . tied(%$pp);

> ================================
> 1. container ref=HASH
> 1. val=ARRAY(0x921a408)
> 1. ref=ARRAY
> 2. container ref=HASH
> 2. val=ARRAY(0x921a408)
> 2. ref=
> 3. tied = CGI=HASH(0x91cb8cc)
> ================================



> --
> С уважением,
> А.Н.Шатловский

> --

> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org









-- 
С уважением,
А.Н.Шатловский



Подробная информация о списке рассылки Moscow-pm