Schrift
[thread]7882[/thread]

verstehe Fehlermeldung nicht

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Gast Gast
 2006-04-12 14:41
#64769 #64769
Hi,

komm leider nicht mehr weiter. Bin Perlanfänger und verstehe nicht was am code falsch ist :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;

open(DATEI, "</P007201031.JPL") || die "Datei nicht gefunden";
my @Zeilen = <DATEI>;
close(DATEI);

my $Anzahlspalten = 0;
foreach(@Zeilen) {
if ($_ =~ s/dok_dat_feld./*/)
$Anzahlspalten = $Anzahlspalten + 1; // <---- LINE 14
}
print $Anzahlspalten;


Fehlermeldung:
Code: (dl )
1
2
3
4
Scalar found where operator expected at line 14, near ">$Anzahlspalten"
<Missing Operator before $Anzahlspalten?>
syntax error at line 14 ,near ">$anzahlspalten"
Execution of functions.pm aborted due to compilation errors.


achja ich schreib unter windows falls das einen unterschied macht????
danke für die Hilfe
greez Shaihulud

Crian: CODE-Tags\n\n

<!--EDIT|Crian|1144839384-->
Crian
 2006-04-12 14:55
#64770 #64770
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
da fehlt die öffnende geschweifte Klammer nach dem if

Also

Code: (dl )
1
2
3
if ($_ =~ s/dok_dat_feld./*/) {
$Anzahlspalten = $Anzahlspalten + 1;
}


oder schöner

Code: (dl )
++$Anzahlspalten if s/dok_dat_feld./*/;
\n\n

<!--EDIT|Crian|1144839474-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
shaihulud
 2006-04-12 15:17
#64771 #64771
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
Danke, hat funktioniert. dachte dass es bei perl so wäre wie bei den meisten anderen sprachen das ein einzeiliger code nach ner ifschleife auch ohne geschweiften klammern stehen kann.

hab jetzt noch ein kleines problem. wie kann ich mit perl den momentanen ordner ansprechen in dem ich das programm aufrufe? bei php ist das mit localhost/dateiname. wie ist das bei perl?

open(DATEI, "</ ??? ")
Ronnie
 2006-04-12 15:26
#64772 #64772
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
open(FILE, '<', 'filename');

einfach in dem du keine Aussage zum Pfad triffst!
vayu
 2006-04-12 16:03
#64773 #64773
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl 

use strict;

open(DATEI, "</P007201031.JPL") || die "Datei nicht gefunden";
my @Zeilen = <DATEI>;
close(DATEI);

my $Anzahlspalten = 0;

foreach(@Zeilen) {
if ($_ =~ /dok_dat_feld.*/) {
$Anzahlspalten += 1;
}
}

print $Anzahlspalten;


aus Perl.de :)

das war, was er eigentlich machen wollte :)
Crian
 2006-04-12 16:13
#64774 #64774
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
[quote=Ronnie,12.04.2006, 13:26]
Code: (dl )
open(FILE, '<', 'filename');

einfach in dem du keine Aussage zum Pfad triffst![/quote]
Nein, dann wird der aktuelle Ornder verwendet, nicht "der in dem das Programm aufgerufen wird" (also der, wo das Programm liegt)

Code: (dl )
1
2
3
use FindBin;

my $file = $FileBin::Bin . '/meine_datei.txt';


hilft in solchen Fällen weiter.

Aber vielleicht hab ich den OP auch falsch verstanden.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
renee
 2006-04-12 16:27
#64775 #64775
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
    if ($_ =~ /dok_dat_feld.*/) { 
beschäftigt die RegEx-Engine unnötig. Das .* kann man weglassen, also
Code: (dl )
    if ($_ =~ /dok_dat_feld/) { 
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/
shaihulud
 2006-04-12 16:51
#64776 #64776
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
danke jungs, hat sich alles erklärt dank eurer hilfe :)
Crian
 2006-04-12 18:43
#64777 #64777
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
dann lass doch bitte das $_ =~ auch mit weg =)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
vayu
 2006-04-12 19:01
#64778 #64778
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
ownage :D
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-04-12 14:41.