Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Massaging the Dictionary

by hacker (Priest)
on Aug 14, 2007 at 13:54 UTC ( [id://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 dict.org, 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('test.dict.org'); 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?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (2)
As of 2024-04-26 01:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found