http://www.perlmonks.org?node_id=1009267


in reply to Question why my code is posting a new line

Hello chiggly007, and welcome to the Monastery!

When the user types (say) “1.5” and presses “Enter”, $price is assigned “1.5\n” (note the newline). Then when print "$price" is called, this newline is printed to the screen.

Solution: chomp the input:

my $price = <STDIN>; chomp $price; print "$price Yens ", ($price / $yen), " pounds\n";

(Also, please fix the <code> / </code> tags in your post so that your script prints clearly. See Markup in the Monastery.)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: Question why my code is posting a new line
by chiggly007 (Initiate) on Dec 18, 2012 at 03:05 UTC
    Thanks for the help Athanasius. So are you saying that assigning a variable, and hitting Enter , Perl automatically assigns a "\n" to that variable? Thanks

      No. Athanasius is implying that:

      my $price = <STDIN>;

      reads an entire line including the end of line character(s) into $price. Perl doesn't "add" the new line, it was there in the input. chomp may be used to remove a trailing line end.

      Most often the line end is represented in Perl strings as \n regardless of operating system. In various cases is can be other strings (for example when the content of $/ has been changed).

      True laziness is hard work