/ 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
linieskift?
Fra : CykelSmeden fra Aalb~


Dato : 01-01-02 21:07

if ($streng gt "")
{
print UD "$streng $kunde \n";
}

hvorfor får jeg også linieskift mellem $streng og $kunde ?

finn

--
--- CykelSmeden.... edb på gadeplan


og når jeg spørger, er det bare fordi jeg ved for lidt!



 
 
Michael Legart (01-01-2002)
Kommentar
Fra : Michael Legart


Dato : 01-01-02 21:22

CykelSmeden fra Aalborg <outlook@acnord.slet.dk> wrote:
> if ($streng gt "")
> {
> print UD "$streng $kunde \n";
> }

> hvorfor får jeg også linieskift mellem $streng og $kunde ?

print UD "$streng\n $kunde \n";

måske? :)

--
Med venlig hilsen / Kind regards
Michael Legart, System Developer - Tiscali A/S
Peter Bangs Vej 26, DK-2000 Frederiksberg - http://www.tiscali.dk
Phone +45 3814 7000, Fax +45 3814 7007

Adam Sjøgren (01-01-2002)
Kommentar
Fra : Adam Sjøgren


Dato : 01-01-02 21:27

On Tue, 01 Jan 2002 20:22:21 GMT, Michael Legart wrote:

>> if ($streng gt "") { print UD "$streng $kunde \n";
>> }

>> hvorfor får jeg også linieskift mellem $streng og $kunde ?

> print UD "$streng\n $kunde \n";

> måske? :)

Eller - hvis man læser "hvorfor", som cykelsmeden skriver, og ikke
"hvordan" (som jeg også først gjorde) - måske fordi $streng indeholder
et linieskift til sidst (eller $kunde et først, men det er mindre
almindeligt).

Funktionen "chomp" kan være en smeds ven...


Mvh.

--
"But how can we appease the mighty snow demons if we Adam Sjøgren
don't sacrifice any leaves? We'll have a warm winter!" asjo@koldfront.dk

CykelSmeden fra Aalb~ (01-01-2002)
Kommentar
Fra : CykelSmeden fra Aalb~


Dato : 01-01-02 22:14


"Adam Sjøgren" <asjo@koldfront.dk> skrev i en meddelelse
news:87zo3xq0lg.fsf@virgil.koldfront.dk...

> Eller - hvis man læser "hvorfor", som cykelsmeden skriver, og ikke
> "hvordan" (som jeg også først gjorde) - måske fordi $streng indeholder
> et linieskift til sidst (eller $kunde et først, men det er mindre
> almindeligt).
>
> Funktionen "chomp" kan være en smeds ven...

Jeg kunne ikke få den til at virke, men chop er måske en bedre ven?

$streng = $ord[-1];
$streng = chop( $streng);

giver desværre en helt tom $streng, men jeg gør det nok forkert
de er begge delstrenge, dvs uden cl/lf, men $streng har været gennem
konvertering til array, og det vil jeg ændre grundet Morten B's tidligere
forslag.

TAK!

finn



CykelSmeden fra Aalb~ (01-01-2002)
Kommentar
Fra : CykelSmeden fra Aalb~


Dato : 01-01-02 23:41


"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> skrev i en meddelelse
news:3c3224ef$0$5481$edfadb0f@dspool01.news.tele.dk...
>
> "Adam Sjøgren" <asjo@koldfront.dk> skrev i en meddelelse
> news:87zo3xq0lg.fsf@virgil.koldfront.dk...


mit sidste indlæg var som i ser forkert. chomp virker på min redhat, jeg får
bare en fejl i den solarisversion jeg skulle bruge scriptet på:
# /u2/oracle.733/ows/3.0/perl/bin/perl -v

This is perl, version 5.003 with EMBED
built under solaris at May 4 1997 15:15:58
+ suidperl security patch

Copyright 1987-1996, Larry Wall


jeg kan heller ikke få scriptet til at virke med
#!/u2/oracle.733/ows/3.0/perl/bin/perl
i første linie;(

finn
> --- CykelSmeden.... edb på gadeplan
> og når jeg spørger, er det bare fordi jeg ved for lidt!
>



CykelSmeden fra Aalb~ (01-01-2002)
Kommentar
Fra : CykelSmeden fra Aalb~


Dato : 01-01-02 23:56

Har alt til at virke nu. - tak for hjælpen

split() putter åbenbart selv linieskift på hvert element!


finn

> > --- CykelSmeden.... edb på gadeplan
> > og når jeg spørger, er det bare fordi jeg ved for lidt!
> >
>
>



Lars Balker Rasmusse~ (02-01-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 02-01-02 13:57

"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> split() putter åbenbart selv linieskift på hvert element!

Det gør den ihvertfald ikke...
--
Lars Balker Rasmussen                  "S.M.R.T."

CykelSmeden fra Aalb~ (02-01-2002)
Kommentar
Fra : CykelSmeden fra Aalb~


Dato : 02-01-02 14:22


"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
news:u4rm4j4h9.fsf@laphroaig.balker.org...
> "CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> > split() putter åbenbart selv linieskift på hvert element!
>
> Det gør den ihvertfald ikke...
Det er jeg ikke i tvivl om du ved mere om end jeg
min konklusion kommer af følgende hvor $linie maksimalt kan have cr/lf i
halen:
-------snip
$kunde = substr( $linie,$fpos , $minpos ) ;
@ord = split('=',$linie) ;
chomp @ord ;
$streng = $ord[-1];
#$streng = chomp( $streng); vil ikke virke? (syntaksfejl under compilering)

if ($streng gt "")
{
print UD "$streng << $kunde \n";
}
--------snip
uden 'chomp @ord ; ' får jeg linieskift i UD-printet efter $streng ???
men der er sikkert noget jeg har overset ;(

finn



Lars Balker Rasmusse~ (02-01-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 02-01-02 17:19

"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> min konklusion kommer af følgende hvor $linie maksimalt kan have cr/lf i
> halen:
> -------snip
> $kunde = substr( $linie,$fpos , $minpos ) ;
> @ord = split('=',$linie) ;
> chomp @ord ;
> $streng = $ord[-1];
> #$streng = chomp( $streng); vil ikke virke? (syntaksfejl under compilering)
>
> if ($streng gt "")
> {
> print UD "$streng << $kunde \n";
> }
> --------snip
> uden 'chomp @ord ; ' får jeg linieskift i UD-printet efter $streng ???
> men der er sikkert noget jeg har overset ;(

Når du starter ligner $linie noget ala: "foo blahblah=bar\n"

Når du splitter det efter '=', får du en liste med to elementer, "foo
blahblah" og "bar\n".

Når du laver chomp på den liste, fjernes $/ (The input record
separator, newline by default) fra alle medlemmer, også den sidste, så
du har en liste med "foo blahblah" og "bar", og $ord[-1] piller så
"bar" ud.

$streng = chomp($streng) virker ikke fordi det er forkert brug. Se
"perldoc -f chomp".

Fjern chomp @ord, og skriv chomp $linie før split, og det vil virke.
--
Lars Balker Rasmussen                  "S.M.R.T."

Lars Balker Rasmusse~ (01-01-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 01-01-02 22:00

"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> if ($streng gt "") {

Det var da en underlig konstruktion. Hvis du vil sikre dig at $streng
indeholder noget, skal du blot teste

if ($streng) {

den den tomme streng boolsk set er det samme som 0.

> print UD "$streng $kunde \n";
> }
>
> hvorfor får jeg også linieskift mellem $streng og $kunde ?

Michael svarede "hvordan"

"Hvorfor" kan man kun besvare hvis man ved hvor du får $streng fra.
Hvis det er fra stdin eller en fil, skal du regne med at den læser
linieskiftet med ind. Derfor skal du lave

chomp $streng;

udmiddelbart efter at du har læst den ind.

Bemærk at en tom linie i en fil stadig har et linieskift efter sig, så
den er ikke identisk med den tomme streng (før chomp altså).
--
Lars Balker Rasmussen                  "S.M.R.T."

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

Månedens bedste
Årets bedste
Sidste års bedste