Schrift
[thread]8316[/thread]

Suchen: Suchen und löschen (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten
Dubu
 2006-09-12 00:47
#69695 #69695
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich schlage eher vor, das ganze ohne Tie::File zu machen. (Wenn man eine Datei nur linear durchsucht, sehe ich ohnehin keinen Vorteil in Tie::File.)

Ersetze check_log_file durch den folgenden Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub check_log_file{
  my ($dir,$name) = @_;
  open my $file, '<', "$dir/$name" or die $!;
  while (defined (my $line = <$file>)) {
      if($line =~ /kein (?:PDF|TIFF)/){
          print "Fehler gefunden\n";
          return 0;
      }
  }
  return 1;
}

Ist auch nicht länger und (wie ich finde) mindestens genauso übersichtlich.
renee
 2006-09-12 09:24
#69696 #69696
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich hatte erst vor, mit grep zu arbeiten und von da an war das Tie::File mit drin ;) Hast natürlich recht.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fraggs
 2006-09-12 10:46
#69697 #69697
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Dubu,11.Sep..2006, 22:47]Ich schlage eher vor, das ganze ohne Tie::File zu machen. (Wenn man eine Datei nur linear durchsucht, sehe ich ohnehin keinen Vorteil in Tie::File.)

Ersetze check_log_file durch den folgenden Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub check_log_file{
  my ($dir,$name) = @_;
  open my $file, '<', "$dir/$name" or die $!;
  while (defined (my $line = <$file>)) {
      if($line =~ /kein (?:PDF|TIFF)/){
          print "Fehler gefunden\n";
          return 0;
      }
  }
  return 1;
}

Ist auch nicht länger und (wie ich finde) mindestens genauso übersichtlich.[/quote]
und der paul der muss kein tie::file installieren ;) sehr schoen
mmm twix
Paul
 2006-09-12 11:35
#69698 #69698
User since
2006-09-11
12 Artikel
BenutzerIn
[default_avatar]
Einen wunderschönen guten Morgen zusammen

habe allles schön kopiert und laufen lassen.
Funktioniert auch sehr gut, ausser löschen, das will noch nicht so richtig. Ich habe bein löschen einen print eingebaut und der gibt auch die richtigen files aus, aber nur die Logfiles, aber löschen will er nicht. Fehlermeldunen gibt es auch nicht was ja eigentlich gut ist. Mal schauen was da nicht so läuft wie es eigentlich soll.

P.S. Das Modul habe ich aber trotzdem installiert.

Gruss

Paul\n\n

<!--EDIT|Paul|1158046653-->
Paul
 2006-09-12 14:45
#69699 #69699
User since
2006-09-11
12 Artikel
BenutzerIn
[default_avatar]
Was ist an dieser Linie falsch, dass nicht alle file gelöscht werden?

Code: (dl )
unlink $basename.'.'.$_ for(qw(log inx pdf));


Gruss

Paul\n\n

<!--EDIT|Paul|1158058059-->
Paul
 2006-09-12 14:45
#69700 #69700
User since
2006-09-11
12 Artikel
BenutzerIn
[default_avatar]
Was ist an dieser Linie falsch, dass nicht alle file gelöscht werden?

Code: (dl )
unlink $basename.'.'.$_ for(qw(log inx pdf));



Gruss

Paul
fraggs
 2006-09-12 14:56
#69701 #69701
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
welche files werden denn jetzt geloescht ?
mmm twix
Paul
 2006-09-12 15:01
#69702 #69702
User since
2006-09-11
12 Artikel
BenutzerIn
[default_avatar]
Gar keine.   :(
Wenn ich einen print mache wird immer der Basename ausgegeben (1234456789.log).

Gruss

Paul
Linuxer
 2006-09-12 15:17
#69703 #69703
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
[edit]gelöscht, weil fehlerhafter doppelpost[/edit]\n\n

<!--EDIT|Linuxer|1158060087-->
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Linuxer
 2006-09-12 15:20
#69704 #69704
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
[quote=Paul,12.09.2006, 12:45]Was ist an dieser Linie falsch, dass nicht alle file gelöscht werden?

Code: (dl )
unlink $basename.'.'.$_ for(qw(log inx pdf));



Gruss

Paul[/quote]
Hi,

du solltest unlink auf Erfolg prüfen; also besser:

Code: (dl )
1
2
3
4
for my $extension ( qw/log inx pdf/ ) {
my $delete_me = $basename . '.' . $extension;
unlink $delete_me or warn "$delete_me: $!\n";
}


Dann hast Du auch eine Chance, eine Fehlermeldung zu sehen.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten



View all threads created 2006-09-11 16:00.