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

Hi, I am very new to perl and am taking a class on it. I am working on my first project and need some help. My code is this:

#!/usr/bin/env perl print "Please enter your first name:"; $FIRST = <STDIN>; print "Please enter your last name:"; $LAST = <STDIN>; print "Please enter a temperature in Farenheit:"; $F = <STDIN>; $C = (($F - 32) * 5) / 9; print "Thank You $FIRST $LAST, $F degrees Farenheit is $C degrees Cels +ius.\n";

but it prints out like this:

nova> perl project1.pl Please enter your first name:neg Please enter your last name:zero Please enter a temperature in Farenheit:88 Thank You neg zero , 88 degrees Farenheit is 31.1111111111111 degrees Celsius. nova>

See how it separates the lines in the last section at neg? and at zero? and then again at 88? How do I make it display as a whole sentence? Thanks for any help you can give me.

edit: I have no idea why this came out as a solid block of text, I typed it in nice neat paragraphs with lots of space for easy reading, sorry, I don't know what happened.

20080222 Janitored by Corion: Added formatting, code tags, as per Writeup Formatting Tips

Replies are listed 'Best First'.
Re: Beginner's help
by kyle (Abbot) on Feb 20, 2008 at 00:33 UTC

    The problem is that when you read a value with <STDIN>, what you read includes a newline ("\n") at the end. That newline gets printed out when you print the variables, such as $LAST, and you get a line break on the screen.

    Have a look at chomp to help you with this.

Re: Beginner's help
by planetscape (Chancellor) on Feb 20, 2008 at 00:32 UTC

    What happened was you neglected to follow the link marked:

    If something looked unlike you expected it to you might need to check out Writeup Formatting Tips

    Also, it's best to clearly label homework as such. ;-)

    Update: Nevermind, guess you did. Just very hard to read in there.

    HTH,

    planetscape
Re: Beginner's help
by toolic (Bishop) on Feb 20, 2008 at 00:38 UTC
    Surround your code with "code" tags.

    Add these lines to the top of your script, then declare all variables with my:

    use warnings; use strict;

    This will help you avoid common Perl coding mistakes.

      Thanks for the help, the book I am using to learn pearl said chomp removed new lines, but I didn't realize that it added newlines to all of my <STDIN> tags.
      I apologize for the formatting, I was getting frustrated with my code and didn't take the time to look up proper formatting in perlmonks, so thanks for the link!
      This is what I now have:
      #!/usr/bin/env perl print "Please enter your first name:"; chomp ($FIRST = <STDIN>); print "Please enter your last name:"; chomp ($LAST = <STDIN>); print "Please enter a temperature in Farenheit:"; chomp ($F = <STDIN>); chomp ($C = (($F - 32) * 5) / 9); print "Thank You $FIRST $LAST, $F degrees Farenheit is $C degrees Cels +ius.\n";


      And this is what I got:
      nova> perl project1.pl Please enter your first name:neg Please enter your last name:zero Please enter a temperature in Farenheit:90 Thank You neg zero, 90 degrees Farenheit is 32.2222222222222 degrees C +elsius. nova>

      It worked great! Thanks for everyone's help!
        The chomp in your calculation of $C should not be necessary.

        You can use sprintf to control the number of decimal places displayed for $C.