|
| grouping regexp Fra : dudsen |
Dato : 23-07-02 20:15 |
|
jeg har følgende udtryk /(.*\")(.*)\@(.*)(\")/ derudover har jeg en
fil hvordan får jeg den til at udskrive $2 ug $3 alså noget i stil
med print
open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
$davs = <INPUTFIL>
if ($davs =~ /(.*\")(.*)\@(.*)(\")/) {print "'$2'"};
| |
Lars Balker Rasmusse~ (23-07-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 23-07-02 20:57 |
|
dudsen <dudsen@gjk.dk> writes:
> jeg har følgende udtryk /(.*\")(.*)\@(.*)(\")/ derudover har jeg en
> fil hvordan får jeg den til at udskrive $2 ug $3 alså noget i stil
> med print
> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
> $davs = <INPUTFIL>
> if ($davs =~ /(.*\")(.*)\@(.*)(\")/) {print "'$2'"};
open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
while ($davs = <INPUTFIL>) {
if ($davs =~ /(.*?\")(.*?)\@(.*?)(\")/) {
print "'$2 og $3'";
}
}
--
Lars Balker Rasmussen "Special is bad."
| |
dudsen (23-07-2002)
| Kommentar Fra : dudsen |
Dato : 23-07-02 21:44 |
|
Lars Balker Rasmussen wrote:
> dudsen <dudsen@gjk.dk> writes:
>> jeg har følgende udtryk /(.*\")(.*)\@(.*)(\")/ derudover har jeg
>> en fil hvordan får jeg den til at udskrive $2 ug $3 alså noget i
>> stil med print
>> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
>> $davs = <INPUTFIL>
>> if ($davs =~ /(.*\")(.*)\@(.*)(\")/) {print "'$2'"};
>
> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
> while ($davs = <INPUTFIL>) {
> if ($davs =~ /(.*?\")(.*?)\@(.*?)(\")/) {
> print "'$2 og $3'";
> }
> }
giver følgende fejlmedelelse
Backslash found where operator expected at ./perl.pl line 4, near
"*?\"
(Missing operator before \?)
syntax error at ./perl.pl line 4, near "(."
Can't find string terminator '"' anywhere before EOF at ./perl.pl
line 4.
er der nogen af jer det kan decifrere det tl hvad der er galt.
| |
Lars Balker Rasmusse~ (23-07-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 23-07-02 22:24 |
|
dudsen <dudsen@gjk.dk> writes:
> Backslash found where operator expected at ./perl.pl line 4, near
> "*?\"
> (Missing operator before \?)
> syntax error at ./perl.pl line 4, near "(."
> Can't find string terminator '"' anywhere before EOF at ./perl.pl
> line 4.
>
> er der nogen af jer det kan decifrere det tl hvad der er galt.
Non-greedy .* (med ? efter *) kom først med i en relativt ny version af
perl. Hvad siger din "perl -v"? Uanset hvad er der sket meget siden
dengang, så det er en god ide at opgradere.
--
Lars Balker Rasmussen "Special is bad."
| |
dudsen (24-07-2002)
| Kommentar Fra : dudsen |
Dato : 24-07-02 12:01 |
|
Lars Balker Rasmussen wrote:
> dudsen <dudsen@gjk.dk> writes:
>> Backslash found where operator expected at ./perl.pl line 4, near
>> "*?\"
>> (Missing operator before \?)
>> syntax error at ./perl.pl line 4, near "(."
>> Can't find string terminator '"' anywhere before EOF at ./perl.pl
>> line 4.
>>
>> er der nogen af jer det kan decifrere det tl hvad der er galt.
>
> Non-greedy .* (med ? efter *) kom først med i en relativt ny version
> af
> perl. Hvad siger din "perl -v"? Uanset hvad er der sket meget
> siden dengang, så det er en god ide at opgradere.
This is perl, v5.6.1 built for i386-linux
Men hvordan spender det overens med at den brokker sig over en
manglende string terminator.
iøvrigt gøt det ingen forskel at fjerne ?
| |
Lars Balker Rasmusse~ (24-07-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 24-07-02 12:16 |
|
dudsen <dudsen@gjk.dk> writes:
> This is perl, v5.6.1 built for i386-linux
> Men hvordan spender det overens med at den brokker sig over en
> manglende string terminator.
> iøvrigt gøt det ingen forskel at fjerne ?
Det ved jeg ikke - det kodede jeg postede virker fint med perl 5.6.1.
Det er åbenbart ikke det kode du har i perl.pl?
--
Lars Balker Rasmussen "S.M.R.T."
| |
dudsen (24-07-2002)
| Kommentar Fra : dudsen |
Dato : 24-07-02 13:23 |
|
Lars Balker Rasmussen wrote:
> dudsen <dudsen@gjk.dk> writes:
>> This is perl, v5.6.1 built for i386-linux
>> Men hvordan spender det overens med at den brokker sig over en
>> manglende string terminator.
>> iøvrigt gøt det ingen forskel at fjerne ?
>
> Det ved jeg ikke - det kodede jeg postede virker fint med perl
> 5.6.1. Det er åbenbart ikke det kode du har i perl.pl?
nu får du et prcist dump af perl.pl
#!/usr/bin/perl -w
open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
while ($davs = <INPUTFIL>) {
if ($davs =~ (.*?\")(.*?)\@(.*?)(\")) {
print "'$2 og $3'";
}
}
og dav indeholder
POSTMASTER=""postmaster@domain.dk"
er det der fejlen er
| |
Lars Balker Rasmusse~ (24-07-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 24-07-02 13:28 |
|
dudsen <dudsen@gjk.dk> writes:
> nu får du et prcist dump af perl.pl
> #!/usr/bin/perl -w
> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
> while ($davs = <INPUTFIL>) {
> if ($davs =~ (.*?\")(.*?)\@(.*?)(\")) {
> print "'$2 og $3'";
> }
> }
Det var heller ikke det jeg skrev - jeg gætter på at KNode skifter ord
mellem / ud med /italic/ bogstaver, hvorfor dit regex ikke er pakket
ind i /.
--
Lars Balker Rasmussen "S.M.R.T."
| |
dudsen (24-07-2002)
| Kommentar Fra : dudsen |
Dato : 24-07-02 14:22 |
|
Lars Balker Rasmussen wrote:
> dudsen <dudsen@gjk.dk> writes:
>> nu får du et prcist dump af perl.pl
>> #!/usr/bin/perl -w
>> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
>> while ($davs = <INPUTFIL>) {
>> if ($davs =~ (.*?\")(.*?)\@(.*?)(\")) {
>> print "'$2 og $3'";
>> }
>> }
>
> Det var heller ikke det jeg skrev - jeg gætter på at KNode skifter
> ord mellem / ud med /italic/ bogstaver, hvorfor dit regex ikke er
> pakket ind i /.
Ja det var den den burde jeg altså have fanget selv pinligt.
Nå men det får den kun til at give en nu fejlmedelelse nemlig
Name "main::filnavn" used only once: possible typo at ./perl.pl line
2.
| |
Lars Balker Rasmusse~ (24-07-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 24-07-02 14:31 |
|
dudsen <dudsen@gjk.dk> writes:
> >> nu får du et prcist dump af perl.pl
> >> #!/usr/bin/perl -w
> >> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
> >> while ($davs = <INPUTFIL>) {
> >> if ($davs =~ /(.*?\")(.*?)\@(.*?)(\")/) {
> >> print "'$2 og $3'";
> >> }
> >> }
>
> Ja det var den den burde jeg altså have fanget selv pinligt.
> Nå men det får den kun til at give en nu fejlmedelelse nemlig
> Name "main::filnavn" used only once: possible typo at ./perl.pl line
> 2.
Jeg gider ikke debugge din kode for dig - du har selv sat -w på, og du
har selv skrevet die-beskeden.
--
Lars Balker Rasmussen "S.M.R.T."
| |
Henrik Christian Gro~ (24-07-2002)
| Kommentar Fra : Henrik Christian Gro~ |
Dato : 24-07-02 13:39 |
|
dudsen <dudsen@gjk.dk> writes:
> #!/usr/bin/perl -w
> open (INPUTFIL, "dav") || die "kunne ikke åbne $filnavn: $!";
> while ($davs = <INPUTFIL>) {
> if ($davs =~ (.*?\")(.*?)\@(.*?)(\")) {
Du skal have /'er omkring højresiden i =~.
> print "'$2 og $3'";
> }
> }
..Henrik
--
Min signatur er taget på sommerferie.
| |
|
|