Schrift
[thread]6788[/thread]

glob("*.txt") vs. <*.txt>



<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
Froschpopo
 2005-03-14 13:39
#52643 #52643
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
gibts da nen unterschied?
sri
 2005-03-14 13:57
#52644 #52644
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Froschpopo
 2005-03-14 14:07
#52645 #52645
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
nein ist schonmal relativ. eins muss zumindest schneller sein
renee
 2005-03-14 14:09
#52646 #52646
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
schreib Dir nen Benchmark ;)

hint: use Benchmark;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2005-03-14 14:43
#52647 #52647
User since
2003-08-04
5867 Artikel
ModeratorIn
[Homepage]
user image
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
sri
 2005-03-14 15:10
#52648 #52648
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Froschpopo,14.03.2005, 13:07]nein ist schonmal relativ. eins muss zumindest schneller sein[/quote]
beides nutzt intern File::Glob
Dubu
 2005-03-14 15:52
#52649 #52649
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
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]
ptk
 2005-03-14 18:29
#52650 #52650
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Beide Sachen sind exakt gleich. B::Deparse sagt:
Code: (dl )
1
2
3
4
5
6
7
8
9
$ 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
Froschpopo
 2005-03-15 08:02
#52651 #52651
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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 < >
sri
 2005-03-15 14:42
#52652 #52652
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[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*
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2005-03-14 13:39.