Hash-Literal dynamischer Länge?

19/12/2009 - 01:27 von Tim Landscheidt | Report spam
Hallo,

gegeben sei:

| use URI;

| [...]

| my $down_url = new URI ('http://' . $language . '.wikipedia.org/w/index.php');
| my %p = ('title' => $downlemma, 'action' => 'raw');
| $p {'oldid'} = $oldid if (defined ($oldid) && $oldid =~ /^\d+$/);
| $down_url->query_form (\%p);

Kann man das Hash-Literal auch dynamisch erweitern, ohne auf
die "Hilfsvariable" %p angewiesen zu sein, i. e. etwas à la:

| $down_url->query_form ({'title' => $downlemma, 'action' => 'raw',
| (defined ($oldid) && $oldid =~ /^\d+$/ ? 'oldid' => $oldid)});

oder ist das nicht möglich?

TIA,
Tim
 

Lesen sie die antworten

#1 Moritz Lenz
19/12/2009 - 09:59 | Warnen spam
Hallo,

Tim Landscheidt wrote:
Kann man das Hash-Literal auch dynamisch erweitern, ohne auf
die "Hilfsvariable" %p angewiesen zu sein, i. e. etwas à la:

| $down_url->query_form ({'title' => $downlemma, 'action' => 'raw',
| (defined ($oldid) && $oldid =~ /^\d+$/ ? 'oldid' => $oldid)});

oder ist das nicht möglich?



Doch, aber zu dem '?' gehört noch ein ':'

defined ($oldid) && $oldid =~ /^\d+$/ ? ('oldid' => $oldid) : ()

HTH,
Moritz

Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Ähnliche fragen