User since
2003-08-15
2653
Artikel
BenutzerIn
gibts da nen unterschied?
User since
2003-08-15
2653
Artikel
BenutzerIn
nein ist schonmal relativ. eins muss zumindest schneller sein
User since
2003-08-04
14371
Artikel
ModeratorIn
schreib Dir nen Benchmark ;)
hint:
use Benchmark;
User since
2003-08-04
5867
Artikel
ModeratorIn
Ich tipp mal drauf, dass <*.txt> auf einen entsprechenden Aufruf von glob umgebaut wird. Also dürfte es höchstens in der Compilierungsphase ein µ länger dauern, aber wirklich nicht relevant.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2004-01-29
828
Artikel
BenutzerIn
[quote=Froschpopo,14.03.2005, 13:07]nein ist schonmal relativ. eins muss zumindest schneller sein[/quote]
beides nutzt intern File::Glob
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Ich bevorzuge glob(), weil es keine Verwechslungsgefahr mit dem Diamantoperator zum Einlesen aus einem Filehandle gibt.
Siehe auch perldoc perlop:
[quote=perldoc perlop,I/O Operators]If what's within the angle brackets is neither a filehandle nor a simple scalar variable containing a filehandle name, typeglob, or typeglob reference, it is interpreted as a filename pattern to be globbed, and either a list of filenames or the next filename in the list is returned, depending on context.
This distinction is determined on syntactic grounds alone. That means "<$x>" is always a readline() from an indirect handle, but "<$hash{key}>" is always a glob(). That's because $x is a simple scalar variable, but $hash{key} is not--it's a hash element.
One level of double-quote interpretation is done first, but you can't say "<$foo>" because that's an indirect filehandle as explained in the previous paragraph. (In older versions of Perl, programmers would insert curly brackets to force interpretation as a filename glob: "<${foo}>". These days, it's considered cleaner to call the internal function directly as "glob($foo)", which is probably the right way to have done it in the first place.)
[/quote]
User since
2003-11-28
3645
Artikel
ModeratorIn
Beide Sachen sind exakt gleich. B::Deparse sagt:
$ perl -MO=Deparse -e 'glob("*.txt")'
use File::Glob ();
glob('*.txt');
-e syntax OK
$ perl -MO=Deparse -e '<*.txt>'
use File::Glob ();
glob('*.txt');
-e syntax OK
User since
2003-08-15
2653
Artikel
BenutzerIn
achwas, glob macht mein script um exakt 4 Bytes größer weil allein schon der name der funktion 4 zeichen länger is als nur die beiden < >
User since
2004-01-29
828
Artikel
BenutzerIn
[quote=Froschpopo,15.03.2005, 07:02]achwas, glob macht mein script um exakt 4 Bytes größer weil allein schon der name der funktion 4 zeichen länger is als nur die beiden < >[/quote]
Genau! Und deshalb schreibst du auch lieber riesige Oneliner, denn einruecken is ja Performance verschwendung... *rofl*