Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Conjunction(3)	      User Contributed Perl Documentation	Conjunction(3)

NAME
       Lingua::Conjunction - Convert Perl lists	into linguistic	conjunctions

SYNOPSIS
	   use Lingua::Conjunction;

	   # emits "Jack"
	   $name_list =	conjunction('Jack');

	   # emits "Jack and Jill"
	   $name_list =	conjunction('Jack', 'Jill');

	   # emits "Jack, Jill,	and Spot"
	   $name_list =	conjunction('Jack', 'Jill', 'Spot');

	   # emits "Jack, a boy; Jill, a girl; and Spot, a dog"
	   $name_list =	conjunction('Jack, a boy', 'Jill, a girl', 'Spot, a dog');

	   # emits "Jacques, un	garcon;	Jeanne,	une fille; et Spot, un chien"
	   Lingua::Conjunction->lang('fr');
	   $name_list =	conjunction(
	       'Jacques, un garcon',
	       'Jeanne,	une fille',
	       'Spot, un chien'
	   );

DESCRIPTION
       Lingua::Conjunction exports a single subroutine,	"conjunction", that
       converts	a list into a properly punctuated text string.

       You can cause "conjunction" to use the connectives of other languages,
       by calling the appropriate subroutine:

	   Lingua::Conjunction->lang('en');   #	use 'and' (default)
	   Lingua::Conjunction->lang('es');   #	use 'y'

       Supported languages in this version are English,	Spanish, French,
       Italian,	German,	Portuguese, Norwegian, Danish, Dutch, Afrikaans,
       Swahili,	and Latin.  (Klingon is	intentionally not supported.)

       You can also set	connectives individually:

	   Lingua::Conjunction->separator("...");
	   Lingua::Conjunction->separator_phrase("--");
	   Lingua::Conjunction->connector_type("or");

	   # emits "Jack... Jill... or Spot"
	   $name_list =	conjunction('Jack', 'Jill', 'Spot');

       The "separator_phrase" is used whenever the separator already appears
       in an item of the list. For example:

	   # emits "Doe, a deer; Ray; and Me"
	   $name_list =	conjunction('Doe, a deer', 'Ray', 'Me');

       You may use the "penultimate" routine to	diable the separator after the
       next to last item. Generally this is bad	English	practice but the
       option is there if you want it:

	   # emits "Jack, Jill and Spot"
	   Lingua::Conjunction->penultimate(0);
	   $name_list =	conjunction('Jack', 'Jill', 'Spot');

       I have been told	that the penultimate comma is not standard for some
       languages, such as Norwegian. Hence the defaults	set in the %languages.

REVISION HISTORY
       Originally this modules was uploaded to CPAN as "Text::List". After
       some criticism, it was renamed.

       As per suggestions, other features were added.  Probably	too many
       features	for what amounts to a simple hack.

       More languages could be added, but some languages have more complex
       rules (inflections and multiple forms of	'and' depending	on the
       context,	etc.)

SEE ALSO
       "Locale::Language"

       The Perl	Cookbook in Section 4.2	has a simular subroutine called
       "commify_series". The different is that 1. this routine handles
       multiple	languages and 2. being a module, you do	not have to add	the
       subroutine to a script every time you need it.

AUTHORS
       Robert Rothenberg <rrwo@cpan.org>

       Damian Conway <damian@csse.monash.edu.au>

LICENSE
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.24.1			  2003-11-16			Conjunction(3)

NAME | SYNOPSIS | DESCRIPTION | REVISION HISTORY | SEE ALSO | AUTHORS | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Lingua::Conjunction&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help