linux-l: perl-tk
Olaf Radicke
olaf_rad at gmx.de
Sa Jan 5 16:40:30 CET 2002
Hi!
Ich bastel hier jetzt eine weile mit Perl-Tk rum und
frage mich warum meine Skripte so langsam laufen.
In den einen Skript, werden ein beliebige Anzahl Ordner
per Zufall ausgewählt und mit gqview angezeigt. In
der Text-Variante (als ohne Tk) braucht es ca. 15 Sekunden.
Mit Tk ca.45 Sekunden. Und das bei 98% CPU-Last und 300MHz.
Hier mal die Tk-Variante:
#! /usr/bin/perl -w
use strict;
use Tk;
my $zwischen;
my @liste;
my $zufall;
my $ausgabe;
my $anzahl;
my $durchlauf;
my $mw;
$mw = MainWindow->new;
$mw->title("scheiß");
$mw->Button(-text => "Start",
-command => \&rotiene)->pack;
foreach my $p (1, 2, 3, 4){
$mw->Radiobutton(-text => $p,
-value => $p,
-variable => \$anzahl)->pack;
# -command => \&rotiene)->pack;
}
MainLoop;
sub rotiene {
chomp($anzahl);
#######erstes Verzeichnis einlesen#######
system("ls ./cd1 >liste.txt") && die 'kann liste.txt nicht anlegen';
open(LISTE, "liste.txt") || die "dateihandel fehlgeschlagen";
while (<LISTE>) {
chomp;
$zwischen = ("./cd1/"."$_");
@liste = ($zwischen, at liste);
};
close(LISTE);
######zeites Verzeichnis einlesen##########
system("ls ./cd2 >liste.txt") && die 'kann liste.txt nicht anlegen';
open(LISTE, "liste.txt") || die "dateihandel fehlgeschlagen";
while (<LISTE>) {
chomp;
$zwischen = ("./cd2/"."$_");
@liste = ($zwischen, at liste);
};
close(LISTE);
##drites Verzeichnis einlesen#######
system("ls ./cd3 >liste.txt") && die 'kann liste.txt nicht anlegen';
open(LISTE, "liste.txt") || die "dateihandel fehlgeschlagen";
while (<LISTE>) {
chomp;
$zwischen = ("./cd3/"."$_");
@liste = ($zwischen, at liste);
};
close(LISTE);
############viertes Verzeichnis einlesen###########
system("ls ./cd4 >liste.txt") && die 'kann liste.txt nicht anlegen';
open(LISTE, "liste.txt") || die "dateihandel fehlgeschlagen";
while (<LISTE>) {
chomp;
$zwischen = ("./cd4/"."$_");
@liste = ($zwischen, at liste);
};
close(LISTE);
############fünftes Verzeichnis einlesen######
system("ls ./cd5 >liste.txt") && die 'kann liste.txt nicht anlegen';
open(LISTE, "liste.txt") || die "dateihandel fehlgeschlagen";
while (<LISTE>) {
chomp;
$zwischen = ("./cd5/"."$_");
@liste = ($zwischen, at liste);
};
close(LISTE);
for ($durchlauf =0; $durchlauf < $anzahl ; ++$durchlauf ){
$zufall = rand(@liste);
$ausgabe = $liste[$zufall];
system ("gqview $ausgabe &");
};
}
Mehr Informationen über die Mailingliste linux-l