Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Massaging the Dictionary

by hacker (Priest)
on Aug 14, 2007 at 13:54 UTC ( #632495=perlquestion: print w/replies, xml ) Need Help??

hacker has asked for the wisdom of the Perl Monks concerning the following question:

I've got a snippet of code that I'm using to query definitions from, and am trying to sanitize/scrape the output, to format it a bit differently.

The problem begins when I try to detect the EOL (\n$) in each line returned. Here is the code thus far:

use strict; use warnings; use diagnostics; use Data::Dumper; use Net::Dict; my $word = $ARGV[0]; my $dict = Net::Dict->new(''); my $result = $dict->define("$word")->[1][1]; # This is where things don't work as intended # Original line # $result =~ 's,\n$,<br />,gsm'; # Fixed version below $result =~ s,\n,<br />,gsm; print $result;

What I'm trying to do, should be fairly straightforward, but I've tried various machinations to detect the end of line characters on each definition returned, and none of them seem to work properly.

Any help? What am I doing wrong here?

UPDATE: Thanks to the help of Limbic~Region and Corion on the CB, it turns out that wrapping my s,,,g in single quotes was killing it. I'm so used to doing that in perl one-liners in the shell, I just added them habitually to my script. Now it works. DOH!

Replies are listed 'Best First'.
Re: Massaging the Dictionary
by FunkyMonk (Chancellor) on Aug 14, 2007 at 14:05 UTC
    You've got your substitute in single quotes! Try $result =~ s,\n$,<br />,gsm. However, \n$ looks highly suspicious. I don't think that's what you want.

Re: Massaging the Dictionary
by moritz (Cardinal) on Aug 14, 2007 at 14:06 UTC
    If you want to insert the br-Tags, use this one:

    $ perl -wle '$_="a\nbc\nd";s{$}{<br />}gm; print' a<br /> bc<br /> d<br />

    This is your regex but without the additional \n.

    If you want to replace the line endings, use s{\n}{<br />}gm

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://632495]
Approved by Corion
Front-paged by Corion
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2020-12-01 21:16 GMT
Find Nodes?
    Voting Booth?
    How often do you use taint mode?

    Results (20 votes). Check out past polls.