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

Ersetzen von "\" durch "$\backslash$

Leser: 2


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2005-11-29 10:41
#60540 #60540
Hallo Leute,
ich hab da ein kleines Problem. Ich möchte in einer Textdatei alle "\" durch "$\backslash$" ersetzen.
Ihr werdet schon merken, dass es dabei um das Parsen einer Textdatei für LaTeX geht.
Ich krieg dabei aber die Dollarzeichen net hin.
So macht er des ganze ohne die Dollarzeichen optimal
Code: (dl )
$string =~ s/\\/\\\backslash/g;

Wenn ich die Dollarzeichen einfach hinzufüge, geht garnix mehr, und so:
Code: (dl )
$string =~ s/\\/\$\\backslash\$/g;

gibt er immer folgendes aus: "\$\backslash\$"

Bitte helft mir...

Danke schon mal
Relais
 2005-11-29 10:53
#60541 #60541
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Guest,29.11.2005, 09:41]so:
Code: (dl )
$string =~ s/\\/\$\\backslash\$/g;

gibt er immer folgendes aus: "\$\backslash\$"[/quote]
so geht's
Code: (dl )
$string =~ s/\\/$\\backslash$/g;
\n\n

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

Winter is Coming
matters
 2005-11-29 11:08
#60542 #60542
User since
2005-11-29
1 Artikel
BenutzerIn
[default_avatar]
Erstmal danke für deine schnelle Antwort: ich hab deinen Code eingefügt, aber ich krieg dann beim Aufruf folgenden fehler:

"my" variable $i masks earlier declaration in same scope at latex_generator.pm line 78.
Final $ should be \$ or $name at latex_generator.pm line 24, within string
syntax error at latex_generator.pm line 24, near "=~ s/\\/$\\backslash$/g"


Irgend ne Ahnung woran das liegen könnte?
J-jayz-Z
 2005-11-29 11:37
#60543 #60543
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja, an dem $
Quote
Final $ should be \$ or $name at latex_generator.pm line 24

$ steht normalerweise für das letzte Zeichen in einem String.
@Relais: WIeso geht das bei dir? Musst du doch quoten, damit es seine Wirkung verliert?!
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
renee
 2005-11-29 12:06
#60544 #60544
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es hat nur die Wirkung in dem ersten Teil (dem Suchteil) von s/// und nicht im Ersetzungsteil...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2005-11-29 12:13
#60545 #60545
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,29.11.2005, 09:41]Wenn ich die Dollarzeichen einfach hinzufüge, geht garnix mehr, und so:
Code: (dl )
$string =~ s/\\/\$\\backslash\$/g;

gibt er immer folgendes aus: "\$\backslash\$"[/quote]
na sowas. dann ist deine perl-version kaputt:
Code: (dl )
1
2
3
4
perl -wle '$_ = "... \\ ...";
s/\\/\$\\backslash\$/;
print'
... $\backslash$ ...

This is perl, v5.8.7 built for x86_64-linux-gnu-thread-multi\n\n

<!--EDIT|pq|1133259248-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2005-11-29 12:15
#60546 #60546
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Relais,29.11.2005, 09:53]so geht's
Code: (dl )
$string =~ s/\\/$\\backslash$/g;
[/quote]
wow, was für eine perl-version hast du denn?
Code: (dl )
1
2
3
4
5
6
perl -wle '$_ = "... \\ ...";
s/\\/$\\backslash$/;
print'
Final $ should be \$ or $name at -e line 3, within string
syntax error at -e line 3, near "s/\\/$\\backslash$/"
Execution of -e aborted due to compilation errors.


edit: typo\n\n

<!--EDIT|pq|1133263448-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2005-11-29 12:16
#60547 #60547
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=renee,29.11.2005, 11:06]Es hat nur die Wirkung in dem ersten Teil (dem Suchteil) von s///  und nicht im Ersetzungsteil...[/quote]
naja, $ hat im ersetzungsteil sehr wohl eine wirkung. es ist halt das
zeichen für eine skalare variable.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2005-11-29 12:24
#60548 #60548
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich bezog mich jetzt auf die Aussage, dass es das Ende eines Strings markieren wuerde...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Relais
 2005-11-29 12:28
#60549 #60549
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,29.11.2005, 11:15]wow, was für eine prl-version hast du denn?[/quote]
Diverse, aber Du hast recht, das war nicht getestet.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

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



View all threads created 2005-11-29 10:41.