Thread seltsames um print
(10 answers)
Opened by topeg at 2010-02-04 20:27
Ja, das mit den Legacy-Filehandles ist halt ne seltsame Sache. Wenn bei normalen Objekten "$obj->meth" dasselbe ist wie "meth $obj" (Stichwort indirect object syntax), wird "F->print" offenbar anders geparst als "print F", wobei das erstere ein gewoehnlicher Methodenaufruf (wie bei $obj) ist, das zweitere der print-Operator. Beides funktioniert nur, wenn es das Dateihandle F gibt, wobei afaik ein bisschen Heuristik benutzt wird.
Um an STDOUT als Objekt heranzukommen, gibt es afaik ansonsten nur die Schreibweise *STDOUT{IO}. Somit sieht man auch, dass es ein IO::Handle-Objekt ist: Code: (dl
)
1 $ perl -lwe 'open F, "/dev/null" or die; print *F{IO}; print *STDOUT{IO}' Als weiteren Trick wollte ich das folgende vorschlagen, aber hier ist es offenbar doch nur wieder der Glob (statt das Objekt): Wie gesagt, alles etwas seltsam. Das Ergebnis der Bemuehungen, eine moderne Sprache zu schaffen, die abwaertskompatibel zu einer nichtmodernen Sprache ist ;-) Lieblingsmodule: IPC::System::Simple, Path::Class
|