Seite 1 von 1

[perl] verständnisproblem mit ternary operator

Verfasst: 06.10.2011, 01:03
von ap0calypse
hi jungs .. ich habe hier ein kleines verständnisproblem, und ich komme nicht ganz dahinter wo mein denkfehler liegt. kann mir jemand dieses verhalten erklären?

Code: Alles auswählen

if (m/.*BLOG_TITLE: *\"(.+)\".*/) {
     $CONF_HASH{'blog_title'} = $1;
}
erwartungsgemäß wird die variable mit dem geregexten wert versehen. aaaaber:

Code: Alles auswählen

m/.*BLOG_TITLE: *\"(.+)\".*/ ? $CONF_HASH{'blog_title'} = $1 : $CONF_HASH{'blog_title'} = 'undefined';
hier bekomme ich IMMER undefined ... und ich kanns mir grad nicht erklären. kann mir wer sagen was ich übersehe? :ugly:

Verfasst: 06.10.2011, 01:37
von xxx

Code: Alles auswählen

A ? B = C : D = E
# resolves
( A ? ( B = C ) : D ) = E
So, no matter what A evaluates to, E is being assigned, either to "B = C" (which is the same as assigning to B) or D.
http://www.perlmonks.org/?node_id=385190