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

eyal_kle has asked for the wisdom of the Perl Monks concerning the following question: (input and output)

I wrote a script in Perl. I gave a the user a message, and I want to emphasize one of the words. for example: print "Please fill in one value\n"; I want the user will see the word one with an underline, because it is important to fill in only one value and not more. Is there any command or function in Perl, that consider this problem?

Originally posted as a Categorized Question.

  • Comment on How do I print characters with underline or bold?

Replies are listed 'Best First'.
Re: How do I print characters with underline or bold?
by Cine (Friar) on Aug 20, 2001 at 15:50 UTC
    #!/usr/bin/perl -w use strict; use Term::ANSIColor; print color 'bold'; print "This is bold";
    see Term::ANSIColor, hope it helps.
Re: How do I print characters with underline or bold?
by ariels (Curate) on Aug 20, 2001 at 16:11 UTC
    Use Term::Cap. It's standard with all Perls (Term::ANSIColor seems to require 5.6) and it works with all terminal types, as it's based on termcap.
    use Term::Cap; use POSIX; my $termios = new POSIX::Termios; $termios->getattr; my $ospeed = $termios->getospeed; my $t = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed }; ($norm, $under, $bold) = map { $t->Tputs($_,1) } qw/me md us/; print "${under}Underlined ${bold}bold$norm text (just ${bold}bold$norm +)"'
    Also of interest might be the code ue (underline end). Read the termcap manual in section 4 or 5 of your nearest UN*X system's man command for more codes than you'd have thought useful.
Re: How do I print characters with underline or bold?
by Hofmator (Curate) on Aug 20, 2001 at 15:59 UTC

    As underlining or bolding are very specific operations depending strongly on the OS, why not use good old simple textual measures to get the readers attention, e.g.

    Please supply only *one* argument. Please supply only _one_ argument. Please supply only one(!) argument.
    This works everywhere where you can print text :)