linux-l: perl-tk

Steffen Dettmer steffen at dett.de
Fr Jan 11 13:24:46 CET 2002


* Olaf Radicke wrote on Thu, Jan 10, 2002 at 14:19 +0000:
> On Thu, Jan 10, 2002 at 12:29:10PM +0100, Steffen Dettmer wrote:

> > C?! Wieso C? Na gut, wer Unix mag sollte C mal gesehen haben,
> [...]
> Nun, weil es denke ich eine gute Ergänzung zu Perl sein kann. 
> Man kann ja beides "mischen" und die jeweiligen stärken dabei
> ausspielen. Also Perl in C/C++ "einbetten" b.z.w. C-Erweiterungen
> für Perl machen.

Das halte ich für keine gute Idee. Welche Stärken hat
eingebettes C gegenüber Perl? C ist schnell, aber nicht mehr,
wenn's eingebettet ist. C kann man prima mit autoconf verwenden,
aber bei Perl braucht man das i.d.R. nicht mal. Bei C kann man
die Quellen geheimhalten.

So, wenn Du C einbetten willst, kannst Du das meist auch gleich
in Perl schreiben. Ist viel komfortabler und schneller zu
entwickeln.

> #! /usr/bin/perl -w
 [...] 
> sub rotiene {
>   chomp($anzahl);
>   open(LISTE, " /backup2/backup/cd/liste.txt") || die "dateihandel fehlgeschlagen";
>   @liste = <LISTE>;
>   close(LISTE);
> 
>     for ($durchlauf =0; $durchlauf < $anzahl ; ++$durchlauf ){ 
>       srand;
>       $zufall = int( rand(@liste));
>       $ausgabe = $liste[$zufall];      
>       chomp($ausgabe);
>       system "gqview $ausgabe \&";
>     };   
> };
> sub suchen {system ("find /backup2/backup/cd/ -type d > /backup2/backup/cd/liste.txt");
>  };

Warum nicht schöner:

my @liste;

#nur einmal initialisieren, oder?
srand;

sub suchen 
{
    open(LISTE, "find /backup2/backup/cd/ -type d |") 
	or die "fork failed $!\n";
    @liste = <LISTE>;
    if (! @liste) {
	#...fehler....
    }
    close(LISTE)
	or die "find failed $!\n"; ##oder sowas
};

sub rotiene {
  chomp($anzahl);
    for ($durchlauf =0; $durchlauf < $anzahl ; ++$durchlauf ){ 
      $zufall = int( rand(@liste));
      $ausgabe = $liste[$zufall];      
      chomp($ausgabe);
      system "gqview $ausgabe \&";
    };   
};

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l