/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
push giver fejl på LINUX
Fra : Poul Theodorsen


Dato : 19-06-01 11:58

Jeg har lavet et Perl-script, som bl.a. indeholder nedenstående linier.
På Windows kører det fint men på mit webhotel giver det fejl under LINUX.
Begge steder køres Apache.

Hvis jeg ændrer push statementet til f.eks print er der ingen problemer.
Gode ideer ??

sub CheckInput {
my (@Fejl);
@Fejl = ();

if ($_firstname !~ /^[\w-\. \']{2,}$/) {
push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
}

}

Hilsen
Poul Theodorsen



 
 
Lars Christiansen (19-06-2001)
Kommentar
Fra : Lars Christiansen


Dato : 19-06-01 13:25

Poul Theodorsen wrote:

>
> if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
------------------------^^
Der mangler et semi-kolon ';', kan det være det? :)

-Lars



Poul Theodorsen (19-06-2001)
Kommentar
Fra : Poul Theodorsen


Dato : 19-06-01 15:48

Nej, for push .... er den eneste kommando indendor {....} og så behøv's det
vist ikke!

"Lars Christiansen" <lc@dixa.net> skrev i en meddelelse
news:3b2f44ee$0$5266$4d4eb98e@read.news.dk.uu.net...
> Poul Theodorsen wrote:
>
> >
> > if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> > push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
> ------------------------^^
> Der mangler et semi-kolon ';', kan det være det? :)
>
> -Lars
>
>



Lars Balker Rasmusse~ (19-06-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 19-06-01 16:17

"Poul Theodorsen" <pth@email.dk> writes:
> Jeg har lavet et Perl-script, som bl.a. indeholder nedenstående linier.
> På Windows kører det fint men på mit webhotel giver det fejl under LINUX.

Hvilken fejl?

> Hvis jeg ændrer push statementet til f.eks print er der ingen problemer.
> Gode ideer ??
>
> sub CheckInput {
> my (@Fejl);
> @Fejl = ();
>
> if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
> }
>
> }

Laver du andet i CheckInput?
--
Lars Balker Rasmussen "Woo hoo!?"

Poul Theodorsen (19-06-2001)
Kommentar
Fra : Poul Theodorsen


Dato : 19-06-01 21:43


"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
news:ubsnk1ouz.fsf@balker.org...
> "Poul Theodorsen" <pth@email.dk> writes:
> > Jeg har lavet et Perl-script, som bl.a. indeholder nedenstående linier.
> > På Windows kører det fint men på mit webhotel giver det fejl under
LINUX.
>
> Hvilken fejl?
Ved det ikke - har ikke adgang til så fine ting som fejllog. (men jeg vil
prøve med CGI::CARP jvf. Thorbjørns indlæg)

>
> > Hvis jeg ændrer push statementet til f.eks print er der ingen problemer.
> > Gode ideer ??
> >
> > sub CheckInput {
> > my (@Fejl);
> > @Fejl = ();
> >
> > if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> > push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
> > }
> >
> > }
>
> Laver du andet i CheckInput?
Ja, her er hele rutinen (dvs mange statements er fjernet, men eksakt disse
linier giver fejlen):
sub CheckInput {
my (@Fejl);
@Fejl = ();
if ($_username) { }
if ( $OldUser) {
} else {
if ($_firstname !~ /^[\w-\. \']{2,}$/) { push (@Fejl, 'Illegal
Firstname') } # HER ER FEJLEN????
}
if (! $Pay) { push @Fejl, 'No payment chosen.' } # HER ER FEJLEN OSSE????
}


> --
> Lars Balker Rasmussen "Woo
hoo!?"



Thorbjørn Ravn Ander~ (19-06-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 19-06-01 18:32

Poul Theodorsen wrote:
>
> Jeg har lavet et Perl-script, som bl.a. indeholder nedenstående linier.
> På Windows kører det fint men på mit webhotel giver det fejl under LINUX.
> Begge steder køres Apache.
>
> Hvis jeg ændrer push statementet til f.eks print er der ingen problemer.
> Gode ideer ??
>
> sub CheckInput {
> my (@Fejl);
> @Fejl = ();
>
> if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
> }

perl -w på ovenstående giver

n:\tmp>perl -w mm.pl
perl -w mm.pl
/^[\w-\. ']{2,}$/: false [] range "\w-" in regexp at mm.pl line 5.


Måske er disse koblet.

Overvej at bruge CGI::Carp med ekstra gejl for at få den faktiske
fejlmeddelelse ud i din browser.
--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Poul Theodorsen (19-06-2001)
Kommentar
Fra : Poul Theodorsen


Dato : 19-06-01 21:35

OK - måske er min regulære expression ikke så heldig, men det hjælper ikke
så meget, for faktisk opstår
fejlen også i en linie som hedder noget a la:

if (! $OK) { push @Fejl, 'An error occurred.' }
Denne linie virker også fint hvis jeg printer meddelelsen direkte til
browseren i stedet for at pushe den.

Men jeg vil nok prøve dit forslag med CGI::Carp (efter sommerferien).

"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> skrev i en meddelelse
news:3B2F8C7E.C8A6DBF8@bigfoot.com...
> Poul Theodorsen wrote:
> >
> > Jeg har lavet et Perl-script, som bl.a. indeholder nedenstående linier.
> > På Windows kører det fint men på mit webhotel giver det fejl under
LINUX.
> > Begge steder køres Apache.
> >
> > Hvis jeg ændrer push statementet til f.eks print er der ingen problemer.
> > Gode ideer ??
> >
> > sub CheckInput {
> > my (@Fejl);
> > @Fejl = ();
> >
> > if ($_firstname !~ /^[\w-\. \']{2,}$/) {
> > push (@Fejl, 'Illegal Firstname') # HER ER FEJLEN????
> > }
>
> perl -w på ovenstående giver
>
> n:\tmp>perl -w mm.pl
> perl -w mm.pl
> /^[\w-\. ']{2,}$/: false [] range "\w-" in regexp at mm.pl line 5.
>
>
> Måske er disse koblet.
>
> Overvej at bruge CGI::Carp med ekstra gejl for at få den faktiske
> fejlmeddelelse ud i din browser.
> --
> Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
> http://bigfoot.com/~thunderbear



Thorbjørn Ravn Ander~ (19-06-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 19-06-01 23:19



Poul Theodorsen wrote:
>
> OK - måske er min regulære expression ikke så heldig, men det hjælper ikke
> så meget, for faktisk opstår
> fejlen også i en linie som hedder noget a la:
>
> if (! $OK) { push @Fejl, 'An error occurred.' }
> Denne linie virker også fint hvis jeg printer meddelelsen direkte til
> browseren i stedet for at pushe den.

Prøv at ændre "my (@Fejl)" til "my @Fejl".

Hvis det er mod_perl inden i Apache, kører den formentlig med "use
strict" som standard (prøv at brug det under Windows), og den er
_EKSTREMT:_ sippet... Ovenstående mener jeg nemlig er en "forkert" brug
af my.

Uanset hvad, er "-w" og "use strict" at anbefale når man udvikler.
Drønirriterende, men det undgår mange fejl.

Thorbjørn

Lasse Hillerøe Peter~ (20-06-2001)
Kommentar
Fra : Lasse Hillerøe Peter~


Dato : 20-06-01 21:25

In article <3B2FCFBF.DE71CA9E@bigfoot.com>, =?iso-8859-1?Q?Thorbj=F8rn?=
Ravn Andersen <thunderbear@bigfoot.com> wrote:

>Prøv at ændre "my (@Fejl)" til "my @Fejl".

>_EKSTREMT:_ sippet... Ovenstående mener jeg nemlig er en "forkert" brug
>af my.

Det er det nu ikke. Du kan jo fx også skrive:

my($scalar, @rest) = @_;

hvilket vel er meget almindeligt.

-Lasse

Thorbjørn Ravn Ander~ (21-06-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 21-06-01 11:22

"Lasse Hillerøe Petersen" wrote:
>
> In article <3B2FCFBF.DE71CA9E@bigfoot.com>, =?iso-8859-1?Q?Thorbj=F8rn?=
> Ravn Andersen <thunderbear@bigfoot.com> wrote:
>
> >Prøv at ændre "my (@Fejl)" til "my @Fejl".
>
> >_EKSTREMT:_ sippet... Ovenstående mener jeg nemlig er en "forkert" brug
> >af my.
>
> Det er det nu ikke. Du kan jo fx også skrive:
>
> my($scalar, @rest) = @_;
>
> hvilket vel er meget almindeligt.

Så tog jeg fejl. Oh well.

En anden grund kunne vel også være hvis Linux-Perl'en var gammel og grå
og ikke understøttede en eller anden facilitet der blev brugt?
--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste