[12266] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 5866 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Jun 3 00:07:27 1999

Date: Wed, 2 Jun 99 21:00:17 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Wed, 2 Jun 1999     Volume: 8 Number: 5866

Today's topics:
        Any Perl certification program? <ybzhang@cs.uh.edu>
        Best way to make opportunities known to the community? <del@cimedia.com>
    Re: Best way to make opportunities known to the communi <uri@sysarch.com>
    Re: file upload (David Efflandt)
    Re: Find all files regardless of extension (Abigail)
    Re: formatting number output (Abigail)
    Re: How do I write target=_blank into a random link scr (David Efflandt)
    Re: how to attach a file to the mail? (David Efflandt)
    Re: Is split (surprisingly, amazingly) slow? (Mark-Jason Dominus)
    Re: multi-dimensional arrays <collin.starkweather@colorado.edu>
    Re: Newbie Q: how to build html table w/ cgi.pm (David Efflandt)
    Re: Newbie Q: how to build html table w/ cgi.pm (Randal L. Schwartz)
    Re: Parameter passing <walton@frontiernet.net>
    Re: Parameter passing <derek@realware.com.au>
    Re: Perl scripts won't run on Linux (David Efflandt)
    Re: problem in perl using the "chroot" command (Abigail)
    Re: Return value from an associative array (Tad McClellan)
    Re: The artistic license and perl: (Chris Nandor)
    Re: The artistic license and perl: <rra@stanford.edu>
        Special: Digest Administrivia (Last modified: 12 Dec 98 (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: Tue, 01 Jun 1999 22:34:58 -0500
From: Zhang Yangbing <ybzhang@cs.uh.edu>
Subject: Any Perl certification program?
Message-Id: <3754A662.D7C6C91E@cs.uh.edu>

Hi, there:

         I know Perl two years ago and try to get a Perl certification,
so
I can convince my future employer that I really know something about
Perl,
anyone knows there is some Perl certification program? thanks.

Yangbing Zhang    ybzhang@cs.uh.edu





------------------------------

Date: Wed, 02 Jun 1999 22:15:08 -0400
From: Del Simmons <del@cimedia.com>
Subject: Best way to make opportunities known to the community?
Message-Id: <3755E52C.171D3CAB@cimedia.com>

Hey everyone, thanks for taking the time to read this. I'm wondering
what you all think is the best way to get the word out to the perl
community about some good employment opportunities? I'm hoping to have
broad coverage without having to buy into some service. Is there an Open
Source job board that I should use? I'm not going to go into details
about the position because my purpose is not to abuse this group. I'm
just hoping someone can tell me the proper place to post something like
that? And is this in an FAQ somewhere I missed?

Thanks,
  Del
-- 
Del Simmons                                    Come join the debate at: 
del@freespeech.com                            http://www.freespeech.com
***********************************************************************
"Of liberty I would say that, in the whole plenitude of its extent, it
is unobstructed action according to our will. But rightful liberty is
unobstructed action according to our will within limits drawn around us
by the equal rights of others. I do not add 'within the limits of the
law,' because law is often but the tyrant's will, and always so when 
it violates the right of an individual." 
    --Thomas Jefferson to Isaac H. Tiffany, 1819. 
***********************************************************************


------------------------------

Date: 02 Jun 1999 23:37:30 -0400
From: Uri Guttman <uri@sysarch.com>
Subject: Re: Best way to make opportunities known to the community?
Message-Id: <x76756c5tx.fsf@home.sysarch.com>

>>>>> "DS" == Del Simmons <del@cimedia.com> writes:

  DS> Hey everyone, thanks for taking the time to read this. I'm wondering
  DS> what you all think is the best way to get the word out to the perl
  DS> community about some good employment opportunities? I'm hoping to have
  DS> broad coverage without having to buy into some service. Is there an Open
  DS> Source job board that I should use? I'm not going to go into details
  DS> about the position because my purpose is not to abuse this group. I'm
  DS> just hoping someone can tell me the proper place to post something like
  DS> that? And is this in an FAQ somewhere I missed?

there is a perl jobs list (announce and wanted) that you can find at
http://www.pm.org/mailing_lists.shtml. i am the moderator and i haven't
publicized it much since i haven't automated approvals. most seem to be
handled fine by majordomo but i have to do some manual approvals which
is a pain. so this is the unofficial public announcement of this list in
the group. there are about 100+ subscribers and it is very low volume
right now.

uri

-- 
Uri Guttman  -----------------  SYStems ARCHitecture and Software Engineering
uri@sysarch.com  ---------------------------  Perl, Internet, UNIX Consulting
Have Perl, Will Travel  -----------------------------  http://www.sysarch.com
The Best Search Engine on the Net -------------  http://www.northernlight.com


------------------------------

Date: 3 Jun 1999 02:49:48 GMT
From: efflandt@xnet.com (David Efflandt)
Subject: Re: file upload
Message-Id: <slrn7lbr6n.ko.efflandt@efflandt.xnet.com>

On Sat, 29 May 1999 12:06:06 -0400, Jeff Thies <cyberjeff@sprintmail.com> wrote:
>   I'd like to be able to upload a file to a server. I can do this using
>CGI.pm and '<input type=''FILE">' to create the file handle. If I pass
>this without using <input type="FILE"> I'll upload zero bytes.

Thats funny, when I print filefield('uploaded_file'); I get the tag:
<INPUT TYPE="file" NAME="uploaded_file" VALUE="">

See 'perldoc CGI' (or CGI.pm itself) and search for 'upload'.

>  I realize this is a stupid newbie question and that this is more a CGI
>question but I can't post to comp.infosytems.www.authoring.cgi (???) so
>you are stuck with me!!!

Get a better ISP.

-- 
David Efflandt    efflandt@xnet.com
http://www.xnet.com/~efflandt/


------------------------------

Date: 2 Jun 1999 22:35:06 -0500
From: abigail@delanet.com (Abigail)
Subject: Re: Find all files regardless of extension
Message-Id: <slrn7lbuci.grs.abigail@alexandra.delanet.com>

Bart Lateur (bart.lateur@skynet.be) wrote on MMLXXVI September MCMXCIII
in <URL:news:373551e7.3001816@news.skynet.be>:
&& Jonathan Stowe wrote:
&& 
&& >One usually would do something like:
&& >
&& >   @files = grep !/^\.{1,2}$/,readdir(DIR);
&& 
&& That's a complex regex for such a simple test.
&& 
&& How about 
&& 
&& 	/[^.]/

 ... is a normal file, but it doesn't match /[^.]/.




Abigail
-- 
perl -MNet::Dict -we '(Net::Dict -> new (server => "dict.org")
                       -> define ("foldoc", "perl")) [0] -> print'


  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
   http://www.newsfeeds.com       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----


------------------------------

Date: 2 Jun 1999 21:29:25 -0500
From: abigail@delanet.com (Abigail)
Subject: Re: formatting number output
Message-Id: <slrn7lbqhe.grs.abigail@alexandra.delanet.com>

James Stevenson (James@linux.home) wrote on MMC September MCMXCIII in
<URL:news:slrn7l8efd.t1b.James@linux.home>:
== Hi
== 
== well the subject asks all
== how do i format numeric output
== 
== i keep getting stuff like 12.963333333333333
== 
== want it more like 12.96


print 12.96;


Or you read the FAQ.



Abigail
-- 
perl -wle\$_=\<\<EOT\;y/\\n/\ /\;print\; -eJust -eanother -ePerl -eHacker -eEOT


  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
   http://www.newsfeeds.com       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----


------------------------------

Date: 3 Jun 1999 03:08:49 GMT
From: efflandt@xnet.com (David Efflandt)
Subject: Re: How do I write target=_blank into a random link script
Message-Id: <slrn7lbsa7.ko.efflandt@efflandt.xnet.com>

On Sat, 29 May 1999 03:59:59 GMT, mugitty@my-deja.com
<mugitty@my-deja.com> wrote:
>Am running a random link/image script from my homepage and want to open
>a new browser window when the link is clicked on.

With CGI.pm (assuming you assigned something to $url):
print a({href=>$url,target=>'_blank'},'Some Link');

But why did you answer your own question in your subject line, posted
twice in the wrong newsgroup (it is an html or cgi question)?

-- 
David Efflandt    efflandt@xnet.com
http://www.xnet.com/~efflandt/


------------------------------

Date: 3 Jun 1999 03:13:42 GMT
From: efflandt@xnet.com (David Efflandt)
Subject: Re: how to attach a file to the mail?
Message-Id: <slrn7lbsjj.ko.efflandt@efflandt.xnet.com>

Binary attachments need to be encoded as plain text.  The easiest way to
do this is with the MIME::Lite module, although, you may need to download
it yourself from a CPAN site ( see  http://www.perl.com/ ).

On Wed, 02 Jun 1999 06:25:05 +0300, Gleb Ekker <globus@infonet.ee> wrote:
>Hi,
>
>can anybody help me with my problem - how to attach a file to the mail
>sent by using Sendmail program? Better would be not to use any module.
>Usually I send mails from my scripts as follows:
<snip>
>Thanks,
>Gleb      globus@infonet.ee
>


-- 
David Efflandt    efflandt@xnet.com
http://www.xnet.com/~efflandt/


------------------------------

Date: Thu, 03 Jun 1999 02:57:32 GMT
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: Is split (surprisingly, amazingly) slow?
Message-Id: <7j4qqv$922$1@monet.op.net>

In article <37551D11.3F10EB10@nortel.com>,
digital kensai  <kensai@nortel.com> wrote:
>I ran some tests and got about a 14 second (versus 26 second) run-time,

Absolute times are meaningless.  All you can conclude from this is
that your computer is better than the one that the other person used,
or less heavily loaded, or something like that.



------------------------------

Date: Wed, 02 Jun 1999 20:44:19 -0600
From: Collin Starkweather <collin.starkweather@colorado.edu>
To: dana <dana@nowhere.com>
Subject: Re: multi-dimensional arrays
Message-Id: <3755EC03.EC05E5DB@colorado.edu>

I'm not sure exactly what you are looking for, but there is a virtual
plethora of solutions whatever it is.

The simplest way is to use an associative array, your fear of KEYS
notwithstanding:

   $i=0;
   $array('text'.$i++} = 22;
   etc ...
   for $key (sort keys %array) { 
      print "The value of the key $key is $array{$key}\n" 
   }

or, if you don't need names for all the values,

   @array = ();
   push @array, 22;
   etc ....
   for $i (0..$#array) { print "text$i is $array[$i]\n" }

or, if you need the names but don't want to use an associative array,

   @array = ( [], [] );
   $i=0;
   push @{$array[0]}, 'text'.$i++;
   push @{$array[1]}, '22';
   etc ...
   for $i (0..$#{$array[0]}) { 
      print "The value of the key $array[0]->[$i] is $array[1]->[$i]\n"
   }

The moral of the story is that there's more than one way (usually
consisting of the easy way and the hard way) to do anything in Perl.  I
recommend Learning Perl by Randall L. Schwartz.  Your investment in this
book will be well worth it.

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Collin Starkweather                                 (303) 492-4784
University of Colorado            collin.starkweather@colorado.edu
Department of Economics          http://ucsu.colorado.edu/~olsonco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

dana wrote:
> 
> Okay, so how do we do this with perl?  I haven't quite gotten the hang
> of KEYS so I am hoping that this isn't the direction that I have to go.
> My problem is basically that I have an undetermined number of text
> variables with a number associated with each text variable.  For
> example,
> 
> text0  = 22
> text1  = 34
> text2  = 38
> text3  = 21
> text4  = 98
> text5  = 42
> .
> .
> and so on . . .
> 
> How do I store this info in an array (or something similar)?  I will
> never know what "textX" will be and I will never know how many I will
> have.  Any help on this topic would be greatly appreciated.
> 
> Thanks!
> Diana


------------------------------

Date: 3 Jun 1999 03:46:00 GMT
From: efflandt@xnet.com (David Efflandt)
Subject: Re: Newbie Q: how to build html table w/ cgi.pm
Message-Id: <slrn7lbug5.ko.efflandt@efflandt.xnet.com>

On Wed, 02 Jun 1999 16:58:08 GMT, Ken Bass <Barista@End.Of.Universe> wrote:
>It is a good example, but, unfortunately, does not work in my case.
>Specifically, I don't know what the row values will be (or even how
>many) until runtime. So how would I replace the three "td([..])" with
>some form of loop?
>
>ken bass
>kbb@SoftSteps.com

I do wish that there was a start_table and end_table, but you can always
put all the td's in a list and then print the table at the end:

push @list,td(['one','two','three']) if $this;
push @list,td(['four','five','six']) if $that;
print table(Tr([@list]));

-- 
David Efflandt    efflandt@xnet.com
http://www.xnet.com/~efflandt/


------------------------------

Date: 02 Jun 1999 20:45:34 -0700
From: merlyn@stonehenge.com (Randal L. Schwartz)
Subject: Re: Newbie Q: how to build html table w/ cgi.pm
Message-Id: <m1g14aj6ap.fsf@halfdome.holdit.com>

>>>>> "David" == David Efflandt <efflandt@xnet.com> writes:

David> I do wish that there was a start_table and end_table,

Lincoln keeps sneaking new features in...

perldoc CGI =>

       With a few exceptions (described below), start_tag_name
       and end_tag_name functions are not generated automatically
       when you use CGI.  However, you can specify the tags you
       want to generate start/end functions for by putting an
       asterisk in front of their name, or, alternatively,
       requesting either "start_tag_name" or "end_tag_name" in
       the import list.

       Example:

         use CGI qw/:standard *table start_ul/;

       In this example, the following functions are generated in
       addition to the standard ones:

       1. start_table() (generates a <TABLE> tag)

       2. end_table() (generates a </TABLE> tag)

       3. start_ul() (generates a <UL> tag)

       4. end_ul() (generates a </UL> tag)

-- 
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@teleport.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me


------------------------------

Date: Wed, 02 Jun 1999 22:41:57 -0400
From: Bob Walton <walton@frontiernet.net>
To: Derek Lavine <derek@realware.com.au>
Subject: Re: Parameter passing
Message-Id: <3755EB74.621B2A25@frontiernet.net>

Derek, your "func2" receives the hash just fine in the test case I put
together below with no modifications of substance to your code.  What is it
that you think doesn't work?  For a good explanation of all this, look at
the perlref and perlsub docs.  You are doing it right, in my opinion.

$site_path='site_path';
%fields = (
      application  => "My App",
        severity   => "Fatal",
        page      => 'page',
        );

&log("${site_path}/logfiles/error.log", \%fields);

# Log looks like this

sub log {
 my ($filename, $fillings) = @_;

# I process $fillings as

  while ( ($tag, $value) = each %$fillings )
  {
     $value =~ s/pp/qq/g;
     $buff .= "$tag : $value\n";
  }

  # more stuff

  # now I want to call another function that takes a filename and a hash
 #note: the changes to $value above did not change the
 #hash referenced by $fillings, in case you were hoping
 #it did, like the way for-loops over arrays work.
 for(sort keys %$fillings){
  print "fillings{$_}=$$fillings{$_}\n";
 }
#note:  this works for me:
  func2( $filename, $fillings); # this does not work, how should I pass
'fillings'
}

sub func2{
 my($hashref)=@_[1];
 for(sort keys %$hashref){
  print "h{$_}=$$hashref{$_}\n";
 }
}

The output on my Windoz box is:

H:\Bob\junk>perl junk4.pl
fillings{application}=My App
fillings{page}=page
fillings{severity}=Fatal
h{application}=My App
h{page}=page
h{severity}=Fatal

H:\Bob\junk>

Derek Lavine wrote:

> This is basic, I am very new to perl.
>
> I have a function log() function that I pass a filename and a hash, it
> is called thus
>
> %fields = (
>       application  => "My App",
>         severity   => "Fatal",
>         page      => $ENV{HTTP_REFERER}
>
>         etc.
>         );
>
> &log("${site_path}/logfiles/error.log", \%fields);
>
> # Log looks like this
>
> sub log {
>  my ($filename, $fillings) = @_;
>
> ....
>
> # I process $fillings as
>
>   while ( ($tag, $value) = each %$fillings )
>   {
>      $value =~ s/(\w+)\n/{$1}/g;
>      $buff .= "$tag : $value\n";
>   }
>
>   # more stuff
>
>   # now I want to call another function that takes a filename and a hash
>
>   func2( $filename, $fillings); # this does not work, how should I pass
> 'fillings'
> }
>
> So my question is how do I turn $fillings back in to a hash for the call
> of func2() as I want the call to func2() to be the equivalent of
>
> %fields = (
>       application  => "My App",
>         severity   => "Fatal",
>         page      => $ENV{HTTP_REFERER}
>
>         etc.
>         );
>
> &func2("${site_path}/logfiles/error.log", \%fields);
>
> Thanks for any help.
>
> Are there some basic rules (one liners) that can be applied to turn on
> type of variable in to another (for convert able types)?
> Or is there a specific place that will explain this in "Programing Perl"
> (I could not find it?)
>
> Thanks again



------------------------------

Date: Thu, 03 Jun 1999 13:30:42 +1000
From: Derek Lavine <derek@realware.com.au>
Subject: Re: Parameter passing
Message-Id: <3755F6E1.251A6465@realware.com.au>

Ooops, quite right Bob, my problem was elsewhere. I am new to Perl.

Thanks

Derek





------------------------------

Date: 3 Jun 1999 03:54:35 GMT
From: efflandt@xnet.com (David Efflandt)
Subject: Re: Perl scripts won't run on Linux
Message-Id: <slrn7lbv08.ko.efflandt@efflandt.xnet.com>

On Sat, 29 May 1999 04:04:02 GMT, jmoram@my-deja.com <jmoram@my-deja.com> wrote:
>I've just set up at a Linux box as an intranet server. Perl seems to be
>installed ok, but I can't seem to run scripts. The GNU C compiler is
>installed and I've made sure the scripts are executable, but when I give
>the command to run them, I get this message:
>$ bash: command not found <scriptname>
>
>Is there a config file I need to modify? Any suggestions would be
>appreciated. Thanks in advance.
>
>Jay Oram

The current directory is NOT automatically in your path.  Try ./scriptname
and make sure that the script has read and execute permission (typically
755).

-- 
David Efflandt    efflandt@xnet.com
http://www.xnet.com/~efflandt/


------------------------------

Date: 2 Jun 1999 21:49:35 -0500
From: abigail@delanet.com (Abigail)
Subject: Re: problem in perl using the "chroot" command
Message-Id: <slrn7lbrn7.grs.abigail@alexandra.delanet.com>

Vincent Rodts (vincent.rodts@cern.ch) wrote on MMC September MCMXCIII in
<URL:news:3753927C.37C06460@cern.ch>:
** Hello,
** 
** I have to use the chroot command in a perl script, but when using it,
** most of the commands concerning files do not work anymore. The following
** program shows this strange behaviour :
** 
** #!/usr/local/bin/perl5
** chroot ("/root");
** exec("ls");
** 
** Without chroot, the ls command works, but with chroot, ls can't find any
** files.
** The script is run as root, and this behaviour happens on different
** systems.
** Is there an error in the way I use the chroot command ?


Maybe. Please tell us _why_ you want to use chroot(). Are you sure you 
understand what chroot() does? It basically redefines where "/" is;
once you do chroot ("/root"), you have no access to "/bin" or "/usr/bin"
anymore. So, unless you have something like a "/root/bin/ls", the "ls"
command won't work as it cannot be found.



Abigail
-- 
perl -we 'print split /(?=(.*))/s => "Just another Perl Hacker\n";'


  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
   http://www.newsfeeds.com       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----


------------------------------

Date: Wed, 2 Jun 1999 18:12:03 -0400
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: Return value from an associative array
Message-Id: <j7a4j7.2ch.ln@magna.metronet.com>

Pat Traynor (pat@ssih.ssih.com) wrote:

: I'm teaching myself Perl from the Llama and Camel books, and I can't
: find an answer to this question.  Also, depending on which book I'm
: looking in, they call this either an "associative array" or a "hash".
: I'm not sure which is correct in the newsgroup.


   They used to be called "associative array" (do you have 1st or 2nd
   edition animal books?).

   But that was too many syllables to say all the time.

   So now they are called "hash".


: I'm trying to find out how to get a true/false value from a hash.  I
: know that this code is incorrect.  But from this, you should get an idea
: of what I'm trying to do:

: 	$age{"bob"} = 35;
: 	$age{"mary"} = 28;

: # This is where I'm lost:
: 	if( $age{"dave"} ) {
: 	    print "Dave's age is $age{"dave"}\n";
                  ^                   ^
                  ^                   ^ there is the end of the string!
                  ^ there is the start of the string


   It won't compile there. Guess that's what you meant with knowing
   that it is incorrect?


   First, you should use single quotes unless you need the
   "extra" things that double quotes give you
   (variable interpolation and backslash escapes).

   Second, you do not need to quote hash keys if they "look like"
   legal Perl variable names (identifiers).

   What Perl identifiers "look like" is described in the first
   several paragraphs of 'perldata.pod'.

   So, you can fix the above line any of these ways:

      print "Dave's age is $age{\"dave\"}\n";

      print qq(Dave's age is $age{"dave"}\n);

      print "Dave's age is $age{'dave'}\n";

      print "Dave's age is $age{dave}\n";


   The last one being "best" for most values of "best".


: 	}
: 	else {
: 	    print "Sorry - Dave's age is not recorded.\n";
: 	}

: That particular statement will always return true.


   Once you fix the syntax error, it should evaluate the 
   else clause (false), unless you make an entry for dave
   AND the value of the entry is true.

   [ Conditional tests do not "return" anything. They "evaluate"
     to some value.
   ]


   Note also that the above will evaluate the else clause
   if $age{dave}=0 or $age{dave}='' or $age{dave}=undef.
   (false values)

   If you want to know if an entry exists in a hash, rather than
   whether it evaluates to a true value, then see the exists() function.


--
    Tad McClellan                          SGML Consulting
    tadmc@metronet.com                     Perl programming
    Fort Worth, Texas


------------------------------

Date: Thu, 03 Jun 1999 02:49:28 GMT
From: pudge@pobox.com (Chris Nandor)
Subject: Re: The artistic license and perl:
Message-Id: <pudge-0206992249320001@192.168.0.77>

In article <yl7lpmyxv7.fsf@windlord.stanford.edu>, Russ Allbery
<rra@stanford.edu> wrote:

# Chip Salzenberg <chip@perlsupport.com> writes:
# > According to Greg Bartels <gbartels@xli.com>:
# 
# >> It seems that the artistic license aint so great after all:
# 
# > The AL is great, except for people who have internalized the GPL.
# 
# Um.
# 
# The Artistic License is very badly written from a legal perspective,

Thank God.

# tends
# to make lawyers roll their eyes,

Praise Allah.

# and is horribly unclear as to its exact
# implications in any number of different circumstances.

I disagree.  I think it is pretty clear as to what will happen in most any
circumstance.

# I'd never
# recommend someone use it as their sole license.  It's rife with undefined
# or ill-defined terms and confusing implications.

I simply disagree.  I don't see where there are signficant ambiguities. 
And even where there are some ambiguities, who cares?  This isn't a
license you want to use to actually protect anything in court.  We want
people to use the source.  And use it in pretty much any darn way they
want to.  Just change the name or release the source.

# If you want a license with some of the same flavor as the Artistic
# License, I'd strongly recommend using either the MIT/X Consortium license
# (for maximum freedom) or the Mozilla Public License (for GPL-like
# restrictions on how one can use the code in proprietary software but
# without the infectiousness).  Neither offer quite the same conditions,
# unfortunately, but they've both been gone over thoroughly by lawyers.

I think I would reword that last sentence with s/, but//.

# (I really wish Larry or someone would hire a good intellectual property
# lawyer to go over the Artistic License with a fine-tooth comb and clean it
# up.)

I don't.  It has served well.  I've never seen one problem arise from its
use.  Why mess with it?  Although if you can notify me of one case where
it has actually caused problems (not including people being paranoid about
its use ... I am talking about a real legal problem), then please share
it.

-- 
Chris Nandor          mailto:pudge@pobox.com         http://pudge.net/
%PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10  1FF77F13 8180B6B6'])


------------------------------

Date: 02 Jun 1999 20:08:55 -0700
From: Russ Allbery <rra@stanford.edu>
Subject: Re: The artistic license and perl:
Message-Id: <yl7lpm56bc.fsf@windlord.stanford.edu>

Chris Nandor <pudge@pobox.com> writes:
> Russ Allbery <rra@stanford.edu> wrote:

>> The Artistic License is very badly written from a legal perspective,

> Thank God.

>> tends to make lawyers roll their eyes,

> Praise Allah.

Anyone who's serious about writing free software and yet ignores the
actual legal implications of the license that they're using is being
dangerously foolish.

This is a tool of our trade.  The license on a free software package is
it's *protection*.  Saying "I'm glad it's legal gibberish" is blind
prejudice that not only hurts you but hurts the entire community that
copies your licensing terms while under the impression you actually know
what you're talking about.

The Artistic License is self-contradictory, full of loopholes, and so
imprecisely worded that I've had people tell me they *cannot* use anything
covered by it in a company that actually pays attention to the legal
implications of licenses because *it has no clear meaning*.  And therefore
any court battle involving it would be a nightmare.

Thankfully Perl is also covered by the GPL, so those companies can fall
back on the GPL.

The reason why you use legal terminology when writing a license is because
there is hundreds of years of case law establishing the precise meaning of
all of those words.  Ambiguity is the *last* thing you want in a license.

> I simply disagree.  I don't see where there are signficant ambiguities.

You seriously cannot see them?  Wow.  Have you actually read the license
in depth with an eye for strict interpretation by people who have no idea
what free software is or how it works?  The whole "fair price" bit is a
glaring example; the imprecision in the language and specification of just
what's covered under it is another.  There are a whole host more.

> I don't.  It has served well.  I've never seen one problem arise from
> its use.  Why mess with it?  Although if you can notify me of one case
> where it has actually caused problems (not including people being
> paranoid about its use ... I am talking about a real legal problem),
> then please share it.

The entire history of case law involving any sort of free software license
can be recited in five minutes.  None of the licenses have really been
tested.  That doesn't excuse sloppy construction of one, nor does it mean
that that sloppy construction will cause any fewer problems.

And people worrying about the terms of a license *is* a problem with the
license.  It's a publicity and perception problem.  We try to address
those in other parts of Perl; why not here?

-- 
#!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker
$^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD,
 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{
rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print


------------------------------

Date: 12 Dec 98 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Special: Digest Administrivia (Last modified: 12 Dec 98)
Message-Id: <null>


Administrivia:

Well, after 6 months, here's the answer to the quiz: what do we do about
comp.lang.perl.moderated. Answer: nothing. 

]From: Russ Allbery <rra@stanford.edu>
]Date: 21 Sep 1998 19:53:43 -0700
]Subject: comp.lang.perl.moderated available via e-mail
]
]It is possible to subscribe to comp.lang.perl.moderated as a mailing list.
]To do so, send mail to majordomo@eyrie.org with "subscribe clpm" in the
]body.  Majordomo will then send you instructions on how to confirm your
]subscription.  This is provided as a general service for those people who
]cannot receive the newsgroup for whatever reason or who just prefer to
]receive messages via e-mail.

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V8 Issue 5866
**************************************

home help back first fref pref prev next nref lref last post