Schrift
[thread]11591[/thread]

FIND::File

Leser: 2


<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
Alter
 2008-04-06 21:46
#107962 #107962
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Schönen guten Abend,

also ich versuche mich gerade mit dem Modul FIND::File anzufreunden scheiter aber kläglich.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!c:\perl\bin\perl.exe
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(param);
use FILE::FIND;
print "Content-type: text/html\n\n";
my @erg;
my $pfad = "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder";
find(\&wanted,$pfad);
sub wanted {
push @erg,$File::Find::name if $File::Find::name=~/\.jpg$/i;
}
print "Hallo";


Das ist mein Code. Wenn ich diesen Ausführen möchte bekomme ich die fehlermeldung:

Code: (dl )
Undefined subroutine &main::find called at C:/xampp/cgi-bin/suchen_test.pl line 10.

Was stimmt hier nicht? Kann mir einer Helfen?
Vielen Dank schon mal.

Gruß Alter....
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
RalphFFM
 2008-04-06 21:51
#107963 #107963
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Schreib mal use File::Find, also mit Kleinbuchstaben ..
FIFO
 2008-04-06 22:06
#107964 #107964
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Alter+2008-04-06 19:46:23--
my $pfad = "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder";


... und nimm Single Quotes oder Du musst die Backslashes escapen.

[edit] Noch besser ist die grundsätzliche Verwendung von '/' als Pfadtrenner, dann brauchst Du nicht über's OS nachzudenken (funktioniert auch bei Windows), und die Art Quotes ist auch egal .
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
Alter
 2008-04-06 22:27
#107965 #107965
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Cool vielen Dank.
Also es lag daran das ich FILE::FIND groß geschrieben habe.
Schönen Abend noch.

[EDIT:] und das ich \ anstelle von / genommen habe.
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
murphy
 2008-04-06 23:10
#107966 #107966
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
FIFO+2008-04-06 20:06:08--
[...]
[edit] Noch besser ist die grundsätzliche Verwendung von '/' als Pfadtrenner, dann brauchst Du nicht über's OS nachzudenken (funktioniert auch bei Windows), und die Art Quotes ist auch egal .


Und wer hat gesagt, dass bei jedem Betriebssystem '/' als Pfadtrenner zulässig ist? Ich wüsste da schon ein paar, bei denen das nicht der Fall ist – zum Beispiel MacOS <= 9 und VMS!

Wenn man wirklich auf Nummer sicher gehen möchte, sollte man File::Spec verwenden.
When C++ is your hammer, every problem looks like your thumb.
Alter
 2008-04-07 19:18
#108013 #108013
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Was soll das sein? Weil es ist zur keiner Docu verlinkt.
Noch ne Frage. Jetzte bekomme ich die Pfade zu den Dateien (jpg). Jetzt will ich das die Dateien ausgegeben werden per HTMl. Nur geht das nicht der findet den Pfad nicht. Muss ich was beachten?
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
#Kein Kommentar
 2008-04-07 19:23
#108015 #108015
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
er meinte CPAN:File::Spec.

zu der frage: zeig mal mehr code!
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
Alter
 2008-04-07 19:27
#108017 #108017
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!c:\perl\bin\perl.exe
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(param);
use File::Find;
print "Content-type: text/html\n\n";
my @erg;
my $i = 1;
my $pfad = "C:/Eigene_Bilder";
find(\&wanted,$pfad);

sub wanted {
push @erg,$File::Find::name if $File::Find::name=~/\.jpg$/i;
}

print "<img src=@erg[$i] alt=Banner border=1>";

So sieht der Spass nun aus...

[EDIT] Und Eclipse bekomm ich das zurück:
<img src=C:/Eigene_Bilder/Sonnenuntergang.jpg alt=Banner border=1>
ist ja richtig nur wenn er das im Browser machen soll geht es nicht. Das bekomme ich nur Banner und nicht das Bild.
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
#Kein Kommentar
 2008-04-07 19:41
#108018 #108018
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
versuchs mal so:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!c:\perl\bin\perl.exe
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(param);
use File::Find;
print "Content-type: text/html\n\n";
my @erg;
my $i = 1;
my $pfad = "C:/Eigene_Bilder";
find(\&wanted,$pfad);

sub wanted {
push @erg,$File::Find::name if $File::Find::name=~/\.jpg$/i;
}

print "<img src=\"$erg[$i]\" alt=\"Banner\" border=\"1\">"; #mit escapten anführungszeichen!!


EDIT: noch mehr anführungszeichen eingesetzt...
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
Alter
 2008-04-07 19:53
#108019 #108019
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Mh...geht immer noch nicht. Aber ich habe auch keine Ahnung was daran Falsch sein soll. Habe ich auch das @ weg gemacht. Schussel Fehler. Hilft aber Alles nichts.
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2008-04-06 21:46.