Thread Fenster in Schleife (10 answers)
Opened by DrWhiteLetter at 2005-04-20 17:30

Strat
 2005-04-20 17:53
#43671 #43671
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nebenbei:
Code: (dl )
while(@datei = readdir(DIR)) {

irgendwie ist das doppelt gemoppelt, weil readdir in listenkontext alle dateinamen einliest... entweder
Code: (dl )
1
2
my @datei = readdir(DIR);
for my $i (0..$#datei) {

oder:
Code: (dl )
1
2
3
while (my $datei = readdir(DIR)) {
 next unless /\.jpg$/; # . wird zu einem beliebigen zeichen, also escapen
 push (@bilder, $_);

Nebenbei bekommst du da probleme, wenn du das script von ausserhalb deines verzeichnisses ausfuehrst; da besser das Modul FindBin verwenden.
Du koenntest deinen Code auch noch etwas kuerzer machen, wenn du z.B. mit glob arbeitest... z.B.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#! /usr/bin/perl
use warnings;
use strict;
use Tk;
use Tk::JPEG;
use FindBin;

my $pattern = "$FindBin::Bin/test/*.jpg";

foreach my $bild (glob($pattern)) {
 my $fenster = MainWindow->new();
 my $img = $fenster->Photo(-file =>$bild, -format => "JPEG");
 $fenster->Label(-image => $img)->pack;
 $fenster->Button(-text => 'OK', -command => sub { $fenster->destroy() })->pack;
 MainLoop();
} # foreach

spart dir\n\n

<!--EDIT|Strat|1114005258-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Fenster in Schleife