Thread pront - Alternative zu say (11 answers)
Opened by hlubenow at 2012-01-13 19:47

Linuxer
 2012-01-14 19:54
#155450 #155450
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
2012-01-14T07:34:37 FIFO
Wenn auch interpolierte arrays aus double-quoted strings (bzw. HERE-Docs) so ausgegeben werden sollen:

Code (perl): (dl )
1
2
3
4
5
6
sub pront {
    local $\ = "\n";
    local $, = "\n";
    local $" = "\n";
    print @_ ? @_ : $_;
}


Editiert von FIFO: typo


Dann ist es aber schon zu spät für $". Die Variable muss dann wie gewünscht gesetzt sein, wenn double-quoted Strings oder HERE-Docs auftauchen, nicht erst hinterher, wenn sie mal ausgegeben werden sollen. Man müsste also innerhalb der Sub die "" verwenden, damit das Setzen von $" den gewünschten Effekt haben kann.

Siehe:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#! /usr/bin/perl

use strict;
use warnings;

sub bla {
    local $\ = local $, = $/;
    local $" = "X";
    print "@_";
}

my @array = 1..5;

my $from_here;

bla <<"END_HERE";
first try: @array
END_HERE

# vs.

{
    local $" = $/;
    bla <<"END_HERE";
second try: @array
END_HERE
}

# vs.

bla "third try: ", @array;


Code: (dl )
1
2
3
4
5
6
7
8
9
10
$ perl testing/bla.pl 
first try: 1 2 3 4 5

second try: 1
2
3
4
5

third try: X1X2X3X4X5
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread pront - Alternative zu say