Thema Perl Freitag, 6.4.2007, 00:04:18 Uhr
tell - Die Position eines Dateizeigers ermitteln Der Befehl tell() ermittelt die aktuelle Position eines Dateizeigers, der vorher mit open erzeugt wurde.
Syntax $position=tell(HANDLE);
$position ist die aktuelle Byteposition. Wenn ein Fehler aufgetreten ist, wird ein -1 zurückgegeben. Weiterlesen...
Donnerstag, 5.4.2007, 00:00:24 Uhr
Nochmal Dateien suchen - diesmal auch in Unterverzeichnissen Ich hab ja hier schon ein Script vorgestellt, mit dem man bestimmte Dateien in einem Verzeichnis suchen kann.Und weil ich es grad aktuell gebraucht habe, hier eine Funktion, mit der man bestimmte oder auch alle Dateien in einem Ordner inklusive Unterordner suchen kann.
Aber Vorsicht Wenn man die ganze Platte durchsuchen läßt, kann das schon mal länger dauern...
use strict;
my @dateien=get_all_files('../..',1,'.pl');
print join("\n",@dateien);
################### # Parameter # Startdir ohne abschließendes /, aktuelles Verzeichnis = . # Unterverzeichnisse durchsuchen? 1: ja, 0: nein # Dateitypen in form .txt.htm.html , also direkt hintereinander, aber nur wenn nötig # ansonsten wird alles gezeigt ############################################# sub get_all_files{ my $startdir=shift; my $include_subdirs=shift; my $endings=shift; my %endings=(); $endings=~ s/\s//g; my @endings=split('\.',$endings); shift @endings;
my $endings=0; $startdir=~ s/\/$//;
if (@endings != 0){ $endings=1; # wenn Endungen angegeben foreach (@endings){$endings{$_}=1;} } @endings=();
my @dateien=(); push (my @all_directories,$startdir);
foreach my $akdir(@all_directories){ local *in; opendir (in,$akdir); my @all=readdir(in); closedir in;
foreach my $akdatei (@all){ next if ($akdatei eq '..' || $akdatei eq '.'); if (-d "$akdir/$akdatei") { if ($include_subdirs == 1){ push (@all_directories,"$akdir/$akdatei"); next; } } else { if ($endings==0){ push (@dateien,"$akdir/$akdatei"); } else { my @endung=split('\.',$akdatei); my $endung=$endung[-1]; if ($endings{$endung} == 1){ push (@dateien,"$akdir/$akdatei"); } } } } } return @dateien; }
|
Weiterlesen...
Mittwoch, 4.4.2007, 00:04:03 Uhr
closedir - Verzeichnis schließen Schließt das Handle eines Verzeichnisses, das vorher mit opendir geöffnet wurde.
Syntax opendir(verzeichnis);
opendir(my $DIR,'../') || die "Kann Verzeichnis nicht öffnen: $!"; foreach (my $eintrag=readdir($DIR)){ print "$_\n"; } closedir ($DIR);
|
Weiterlesen...
Dienstag, 3.4.2007, 00:03:18 Uhr
getc - Nächstes Zeichen aus Datei lesen Der Befehl getc() Liest ein Zeichen aus einer zuvor geöffneten Datei und positioniert den Dateizeiger um ein Zeichen weiter. getc ist die Abkürzung für get Char(akter), zu deutsch hole (ein) Zeichen.
Syntax $zeichen=getc(HANDLE);
open (my $IN,'<datei.txt') || die "kann datei nicht oeffnen: $!"; while ( !eof($IN) ){ my $zeichen = getc($IN); print $zeichen; } close $IN;
|
Weiterlesen...
Montag, 2.4.2007, 00:01:51 Uhr
read() - Bestimmte Anzahl Zeichen aus Datei einlesen Mit dem Befehl read() können eine bestimmte Anzahl von Zeichen aus einer Datei ab dem aktuellen Datei-Positions-Zeiger eingelesen werden.
Syntax $gelesen=read(DATEIHANDLE,Skalar,Anzahl(,optional: Offset))
Im Erfolgsfall wird die Anzahl der gelesenen Zeichen zurückgegeben, ansonsten eine 0 bei Dateiende und ein undef bei einem Fehler. Weiterlesen...
Sonntag, 1.4.2007, 00:01:11 Uhr
close - Datei schließen in Perl Mit close () schließen Sie eine Datei, die Sie zuvor mit open geöffnet haben.
Syntax close(FILEHANDLE);
Weiterlesen...
Samstag, 31.3.2007, 00:29:39 Uhr
binmode() - Dateien binär behandeln in Perl Mit dem befehl binmode() wird eine Datei in den binären Modus geschaltet. Wozu? Nun, es gibt Betriebssysteme, die unter einem Binärmodus und einem Textmodus unterscheiden. Zu diesen Betriebssysteme gehören unter anderem Dos und Windows, nicht jedoch Unix. Sollte ihr Script also auf einem Unix-System laufen, ist der Befehl binmode eigentlich überflüssig. Da man aber nie weiß, wo das Script letztendlich läuft, muß man ihn aber eben trotzdem im Hinterkopf behalten und ggf. einsetzen.
Und was macht nun binmode()? Also: Verschiedene Dateien, zum Beispiel .gif und .jpg-Bilder oder auch ausführbare Dateien, müssen zum Beispiel unter Dos und Windows im Binärmodus eingelesen werden, da diese Betriebssysteme die Zeichenfolge CR und LF (Carriage Return und Linefeed) automatisch in ein LF (also Linefeed) umwandelt. Dieser Automatismus würde natürlich die Daten unbrauchbar machen. Weiterlesen...
Freitag, 30.3.2007, 00:00:49 Uhr
eof - Prüft, ob Dateiende erreicht ist Mit dem Befehl eof() fragen Sie eine geöffnete Datei darauf ab, ob das Dateiende erreicht ist.
eof bedeutet übrigens end of file, also Ende der Datei, ins deutsche übersetzt.
Syntax eof(DATEI); Weiterlesen...
Donnerstag, 29.3.2007, 00:04:45 Uhr
open() - Dateien zum Lesen oder Schreiben öffnen in Perl Mit dem Befehl open() werden in Perl Dateien zum Lesen, Schreiben oder Ausführen geöffnet. Als Parameter werden erwartet:
- das Dateihandle
- der Dateiname, inklusive Pfadangaben
Mit Hilfe der >, < und |-Zeichen vor dem Dateinamen bzw. Pfadnamen kann man zusätzlich festlegen, ob eine Datei zum Lesen, Schreiben, Anbhängen oder Auführen geöffnet werden soll. Wird nichts angegeben, wird eine Datei zum Lesen geöffnet. Weiterlesen...
Mittwoch, 28.3.2007, 00:00:45 Uhr
Befehle, die standartmäßig $_ verwenden, und solche, die das nicht tun Hier ist eine Liste mit den Befehlen, die standartmäßig $_ verwenden, wenn kein weiteres Argument übergeben wird: - abs - alarm - chomp - chop Weiterlesen...
|