Archiv verlassen und diese Seite im Standarddesign anzeigen : Werte auf 0 zurücksetzen
Darthshoot
29.06.2006, 13:08
Hallo!
Ich habe eine While Schleife gebaut und die muss mehrmals benutzt werden. Das ganze eben in einem sub Programm. Allerdings kann sie nur einmal benutzt werden, weil das $i auf 4 gesetzt ist und ab 4 soll die Schleife ja aufhören. Wie kann ich jetzt $i auf 0 zurück bringen, am Ende der Schleife, sodass man sie unendlich mal benutzen kann?
Danke im Voraus.
MfG Darthshoot
mnemonic
29.06.2006, 13:18
sub foo {
while($bar) {
# irgendwas mit $i
}
$i = 0;
}
Alternativ würde ich Dir zu einer for-Schleife raten...
Darthshoot
29.06.2006, 14:29
Also ich will so ne Art kleinen Scanner machen, aber irgendwie klappt es trotzdem net..
chdir ('C:\\WINDOWS\\System32\\');
&Scanning;
chdir ('C:\\WINDOWS\\');
&Scanning;
chdir ('C:\\');
&Scanning;
chdir ('C:\\System Volume Information\\');
&Scanning;
sub Scanning
{
for (my $i = 1; $i < 4; $i++)
{
scann...& delete...
}
}
Warum scannt er nur im System32?
eViL_oNe
30.06.2006, 10:19
welchen Sinn und Zweck soll denn diese while-Schleife erfüllen?
Darthshoot
30.06.2006, 14:18
Sie scannt noch Unterordner und genau da war das Problem. System32 geht irgendwie net egal.
eViL_oNe
02.07.2006, 11:02
ich weiss zwar nicht, was du mit scannen meinst (nehme mal an, das durchsuchen von Unterverzeichnissen), diese while-Schleife macht aber was ganz anderes
Sofern du Verzeichnisse durchsuchen willst, solltest du eher so ein Konstrukt verwenden (hier sogar mit Rekursion, lässt sich aber einfach unterbinden, sofern man dies nicht will) -- frei kopiert aus einem kleinen Playlistgenerator, den ich mir mal geschrieben habe ;):
#!/usr/bin/perl
use strict;
my %extensions = (
'mp3' => 1,
'ogg' => 1,
'wma' => 1,
);
my %playlistExtensions = (
'm3u' => 1,
);
my $playlistDelete = 1;
my $playlistExtension = "m3u";
# aktuelles Verzeichnis nach ordnern durchstöbern
getDir ( "." );
sub getDir {
my ( $directory ) = @_;
opendir ( DIR, $directory ) or die ( "$directory: $!" );
my @files = readdir ( DIR ) or die ( "$directory: $!" );
closedir ( DIR );
my @playFiles = ();
foreach my $file ( @files )
{
# Directory?
if ( -d $directory . "/" . $file )
{
# rekursiver Aufruf
if ( $file ne "." && $file ne ".." )
{
getDir ( $directory . "/" . $file );
}
}
else
{
my $extension = $file;
$extension =~ s/^.+\.//;
if ( exists $extensions{$extension} )
{
push ( @playFiles, $file );
}
if ( exists $playlistExtensions{$extension} && $playlistDelete == 1 )
{
warn "Benenne $directory/$file in $directory/$file.bak um....\n";
rename ( $directory . "/" . $file, $directory . "/" . $file . ".bak" ) or die ( "$directory/$file: $!" );
}
}
}
# Playlist erstellen....
if ( scalar ( @playFiles ) > 0 )
{
my $filename = $directory;
$filename =~ s/^.+\///;
$filename = $filename . "." . $playlistExtension;
open ( FILE, ">$directory/$filename" ) or die ( "$directory/$filename: $!" );
flock ( FILE, 2 );
foreach my $item ( @playFiles )
{
print FILE "$item\n";
}
flock ( FILE, 8 );
close ( FILE );
print "Playlist $directory/$filename erfolgreich erstellt!\n";
}
}
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.