Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6260[/thread]

newline an Stringende anhängen

Leser: 3


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
alexus-777
 2004-05-15 19:05
#82391 #82391
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
Hallo Community,

gibt es andere Möglichkeiten eine newline an Stringende anzuhängen als:
Code: (dl )
$string="$string\n";


Regex ist in meinem Fall leider ungeeignet, weil im String solche Werte wie \ /$%&()[]{}?`&acute;""''= und andere vorkommen können. Wenn ich obenstehende Variante verwende, bekomme ich ein Fehler wenn ein \ im String steht und \n maskiert. Welche andere Möglichkeiten gibt es noch?

Gruß Alexander
steffenw
 2004-05-15 19:48
#82392 #82392
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
$string = $string."\n";
$string .= "\n";
$SIG{USER} = sub {love 'Perl' or die};
Ishka
 2004-05-15 20:17
#82393 #82393
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
wo gibts denn nen Fehler?

perl -e '$var="bl\\";$var="$var\n";print $var'

klar, wenn du schreibst $var="bl\" gibts nen Fehler, aber auch, wenn du nicht $var="$var\n"; dahinter schreibst..
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
[E|B]
 2004-05-15 21:04
#82394 #82394
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Code: (dl )
$string =~ s/(.+)/$1\n/;


Wo ist das Problem mit RegExps?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
betterworld
 2004-05-15 21:13
#82395 #82395
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Code: (dl )
$string =" /$/\n/;

Wo soll da ein Problem sein? :)
Ishka
 2004-05-15 21:16
#82396 #82396
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@[E|B]: funzt net, @betterworld - schon gar nicht.

$string =~ s/(.+)/$1\n/s;

würde laufen

$string =~ /$/\n/s;

auch..
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
[E|B]
 2004-05-15 21:46
#82397 #82397
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wieso geht meins nicht?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
betterworld
 2004-05-16 00:17
#82398 #82398
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[E|B
,15.05.2004, 19:46]Wieso geht meins nicht?

Ishka sah ein Problem bei Strings, die Zeilenumbrueche enthalten. Ohne das s-Flag gilt . naemlich nicht fuer Zeilenumbrueche. Ich habe denselben Fehler gemacht.
Ishka
 2004-05-16 03:31
#82399 #82399
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
betterworld - du hast sogar einen weiteren gemacht: $string =" /$/\n/; (es sei denn, ich kenne den =" Operator noch nicht)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Relais
 2004-05-16 04:08
#82400 #82400
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use strict;
use warnings;

sub unchomp {
my @data = @_;
foreach my $string ( @data ) {
$string .= "\n"
unless $string =~ m/\n$/;
}
return @data;
}

print unchomp( "a\n", "b", "c" )
\n\n

<!--EDIT|Relais|1084666242-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-05-15 19:05.