Thread Variablennamen anzeigen
(18 answers)
Opened by bianca at 2021-05-25 11:23
Ich wüsste nicht, dass es dafür eine Option gäbe.
Entweder iterierst Du einzeln durch jedes Key-Value-Paar (Name=>Referenz) und erstellst jeweils einen einzelnen Dump. Diesen Dump dann mit Trennzeile ausgeben oder abspeichern. Oder einen Array von Dumps anlegen und dessen Elemente dann mit der Trennzeile per join() verbinden. Oder bei der jetzigen Methode: Wenn Du sicher bist, dass Deine Daten das folgende Suchkriterium nicht enthalten: - Jeder ausgegebener Dump sollte mit einem Semikolon am Zeilenende beendet sein. - Suche in Deinem $dump nach jedem Semikolon dieser Art und füge dahinter Deine Trennzeile ein. Beispiel: 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 32 33 34 35 36 37 38 39 40 41 42 43 44 #! /usr/bin/env perl use strict; use warnings; use 5.010; sub my_dumper1 { require Data::Dumper; my @dumps; my $trenner = "\n#-----------------\n\n"; while ( my ( $name, $ref ) = splice( @_, 0, 2 ) ) { push @dumps, Data::Dumper->Dump( [$ref], [$name]); } warn join $trenner, @dumps, ""; } sub my_dumper2 { require Data::Dumper; my %args = @_; my @names = keys %args; my @refs = values %args; my $dump = Data::Dumper->Dump( \@refs, \@names ); my $trenner = "\n#-----------------\n\n"; $dump =~ s/;\s*$/;$trenner/mg; warn $dump; } my $foo = [ qw( an array ) ]; my $bar = { a => "hash" }; warn "Variante 1\n"; my_dumper1( 'foo' => $foo, '*bar' => $bar ); warn "Variante 2\n"; my_dumper2( 'foo' => $foo, '*bar' => $bar ); Last edited: 2021-05-27 10:00:41 +0200 (CEST) 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! |