Discover how to display text on the console with print() and say().
- The print and say functions are used for displaying text on the console. They're also used for writing text to files and streams. Here's a working copy of hello.pl from chapter 13 of the Exercise Files. The only difference between print and say is that the say function adds a new line at the end of its output. So, if I come down here to our say function, and I just copy and paste this a few times, when I run it, you notice that the output of each say function is on its own line.
So, it outputs the string that's the argument, or whatever's in the argument list. And then, when it's all done with that, it puts out a new line character, so that any output after that starts on the next line. And so, in this case, what output is after that is another say function and then another one. And they're all on the same line. If instead I were to make this the print function and use that three times, you notice that the output is all on one line, because the print function does not add that new line at the end of its output.
So, that's really the only difference between print and say. The print function has been available in all versions of Perl, since the very beginning. The say function is new with Perl 5.10. So, print and say, these functions, they take a list as their argument. So, you may print multiple things like this. I can say 1, 2, 3 as a list, and when I run this, you notice that the one, the two, and the three are all jammed together. And then, there's a new line at the end. Likewise, I can use an array.
So, I can say, my @a = and give it a list. And then, instead of all this, I can say @a; and when I run this, you notice that the output is exactly the same. In fact, if I want to, I can add a hash here and simply put a comma and add the hash here, and now, when I run this, you notice that it has the output of the array, the output of the hash, all as one list. Now, if I want to add a separator in-between these, because it's really hard to read with all of the arguments all jammed together, I can use the special variable $, like this, and give it some sort of a separator string.
And then, when I run this again, you'll notice that the arguments are all separated with a comma and a space. And there's no comma space in the beginning, there's no comma space at the end, it's really just a separator between the list arguments. Now, this is certainly possible. The disadvantage of this technique is that this modifies all of the say and print functions for the rest of the script, or until you change the $, to something else. So, it's sort of a global change.
Instead, it's more common to use the join function. We'll talk more about the join function in a little bit, in this chapter. And when I run this, it has exactly the same effect. So, the join function simply takes a separator as its first argument and then, the list after that, and it joins them into a string, into a single string, with that separator. And then, it passes that to say, in this case. We'll discuss join a little later in this chapter. So, print and say, let me just restore this, here, default to the standard stream for their output.
You may change this by specifying a file handle before the argument list, like this. So, this is one of the default streams. Standard output is one like this. And if I run this, there's no change. And if I use standard error, it's another one of the standard streams, you'll notice that my output will change to red because in this particular environment, the standard error output is distinguished in this theme by having the text in red. Of course, this will work for any stream.
So, the print and say functions are simple and powerful. They're used for displaying text on the console and for writing text to files and streams. The say function is available in Perl 5.10 and later, and the print function is available in all versions of Perl.
Watch to learn the details of the Perl syntax, from variables, conditionals, loops, and data structures to regular expressions, functions, and references. A quick-start guide is included for experienced developers who want to get up and running with Perl 5 fast, and the entire course is recommended for both new and experienced programmers alike. Later chapters cover file handling and reusing code with Perl modules, plus Perl best coding practices.
- Understanding Perl's general syntax and the anatomy of a Perl script
- Writing statements and expressions
- Creating assignments
- Working with variables and strings
- Using data types effectively
- Defining logical flow with conditionals and loops
- Using special variables
- Using Perl operators
- Performing simple Perl programming tasks with expressions
- Matching data
- Defining and calling functions
- Using references
- Handling files in the file I/O
- Using built-in functions
- Reusing code with modules
- Coding with Perl best practices
Skill Level Intermediate
Programming Foundations: Refactoring Codewith Simon Allardice1h 44m Intermediate
1. Setting Up
About Perl3m 36s
2. Quick Start
3. Basic Syntax
4. Values and Variables
7. Special Variables
9. Regular Expressions
11. References and Structures
12. File I/O
13. Built-In Functions
15. Best Practices
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.Cancel
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.