Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
--- [EMAIL PROTECTED] wrote: Curtis, You make some good points. I will be leaving in about 10 minutes for a vacation, and wont be back until Monday, so if you wouldn't mind sending an email to the list Monday as a reminder, I will submit the code then. Thanks, David David, Just a reminder regarding posting your alternative to CGI.pm (and thanks to niko for reminding me to remind you :) Cheers, Curtis Ovid Poe = Ovid on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
Curtis, Thanks for the reminder, I'll get it up shortly after I get home from work. About 5:00pm Mountain Time. David - Original Message - From: Ovid [EMAIL PROTECTED] To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Monday, July 01, 2002 11:39 AM Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems --- [EMAIL PROTECTED] wrote: Curtis, You make some good points. I will be leaving in about 10 minutes for a vacation, and wont be back until Monday, so if you wouldn't mind sending an email to the list Monday as a reminder, I will submit the code then. Thanks, David David, Just a reminder regarding posting your alternative to CGI.pm (and thanks to niko for reminding me to remind you :) Cheers, Curtis Ovid Poe = Ovid on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
Picky, picky. :) You're right, my bad. use CGI; my $q = new CGI; my %params = $q-Vars; SR -Original Message- From: Felix Geerinckx [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:16 AM To: [EMAIL PROTECTED] Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems on Thu, 27 Jun 2002 02:54:10 GMT, [EMAIL PROTECTED] (Scot Robnett) wrote: Its pretty hard to make it more simple than: use Form; my %input = Form(); Let me try. use CGI; %params = $q-Vars; Try again. Your code throws the following error: Can't call method Vars on an undefined value ... -- felix -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
The difference is, the efficiency and data structure CGI.pm returns. Mine came to I think 72 times faster when not uploading images, and 2.5 times faster when uploading images. I'm not saying CGI.pm is written poorly or anything, I am saying that it is a little bit bloated and has a lot of functionality that is not needed (especially if the only thing you are doing with it is receiving input). Well personally, I've always used print Content-type:text/html\n\n; but somebody told me this was not the spec, so I read through the spec and looked up how CGI.pm was doing it and what I found was ${CRLF}${CRLF} as the \n\n replacement. I of coarse should have looked a little higher where they defined $CRLF, or at least tested what I had read before posting it, but oh well. From here on out, I'll stick with what I've known to work instead. Like I've said before, it doesn't make much sense to make a wrapper for CGI.pm so that I can have things the way I want them, because this is doubling the work necessary. I'm not making my lib to prove superior, or to say anything like mine is better. I have simply found a very positive solution for me (quick and in a structure that works well for me). If others like my solution, and it works well for them too, more power to them. I will post mine on CPAN, if nobody else in the world feels it is a good solution for them, that's just fine with me. If people like my solution, but have a few suggestions of how to improve it, I welcome that. One thing I am open to after posting my lib to CPAN is suggestions. I'm not exactly close minded here, I'm just the type of person who if I'm not perfectly happy with the way something works (whether programming or in the real world), I determine whether I can fix it, if I can I do. Because this lib puts the received values in a structure that I like to work with, in my mind it fixes things. David - Original Message - From: Todd Wade [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, June 26, 2002 11:12 PM Subject: CGI.pm v/s roll-your-own [WAS:] Displaying Problems [EMAIL PROTECTED] wrote in message 008d01c21c73$aa978a30$d381f6cc@david">news:008d01c21c73$aa978a30$d381f6cc@david... .. snip I'm sure I'll get lots of hate mail from CGI.pm die hard's, but my other choice is to just not Not trying to post hate mail, just reasoning on the subject. post this at all. What I hope for is several people telling me how to make it slightly more efficient or compatible with other OS's (you see I've only had opportunity to test it on Linux and Win2000, though I've been testing it on Linux for about 2 1/2 years). Lincoln Stein (the original author of CGI.pm) already has (lots of) people doing this for him, and his module has been maintained for around 10 years. Its been tested on scores of OS's. Ive read four of his books. There is a book dedicated to CGI.pm. My point is his module has been rigorously debugged and you are just now here asking people for help debugging yours. Its pretty hard to make it more simple than: use Form; my %input = Form(); But something else has already made it that easy. Im not knocking your module. Im just explaining why people like us trust people like Lincoln Stein's module over yours. For example, Ive seen alot of hand rolled CGI parameter parsers, most of them have a line that says: @pairs = split(//, $ENV{QUERY_STRING}); # WRONG!! This works when the user agent uses an as a delimeter, but some user agents use ; (a semicolon) which is perfectly valid. program chokes. Then people are in the newsgroups trying to get others to help track down a very, VERY difficult-to-track bug. But at the end of the post they say, I dont want to use CGI.pm! Floors me. Really floors me. And this is just one of several examples I've seen. So I know, when I say: print $q-header(); Its going to get it right. BTW, I find the source to CGI.pm very easy to read and makes alot of sence. Ive seen suggestions from you in this thread that are either wrong or wont even work. (What does this do- print Content-type: text/html${CRLF}${CRLF};) Which tells us again Mr. Stein has a thorough understanding of the HTTP protocol, while you stll have a little to learn. Again, this is NOT a flame. I suggest accepting the constructive criticism professionally. Todd W. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
my point stands :) So out of curiosity, what kind of data structure do you get back with this? If its as I would imagine, then its very close to my own. %hash = ( 'a_name' = 'value', # for single name value pairs 'b_name' = [multiple, values, for, this], # for single name muli-value sets 'c_name' = { 'original_name' = 'filename.jpg', 'size' = '23554', 'location' = '/tmp/fileupload/tmpfile-10028983-88.57.192.3-2783-298374-927837' } # for files ); Of coarse I know the image information is not in there the same way. David - Original Message - From: Scot Robnett [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: Felix Geerinckx [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 8:29 AM Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems Picky, picky. :) You're right, my bad. use CGI; my $q = new CGI; my %params = $q-Vars; SR -Original Message- From: Felix Geerinckx [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:16 AM To: [EMAIL PROTECTED] Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems on Thu, 27 Jun 2002 02:54:10 GMT, [EMAIL PROTECTED] (Scot Robnett) wrote: Its pretty hard to make it more simple than: use Form; my %input = Form(); Let me try. use CGI; %params = $q-Vars; Try again. Your code throws the following error: Can't call method Vars on an undefined value ... -- felix -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
I haven't seen the rest of your module, so I'm not so sure that the point really stands. It might. But, adding one line to initialize the CGI object is really not that big a deal considering the kind of power you have associated with that object. How much extra work do I have to do to utilize the keys and values in your hash vs. the CGI.pm hash? The data structure you get back from CGI.pm is: - Called in a scalar context, a tied hash reference. - Called in a list context, a standard hash containing key/value pairs. - Keys/params with multiple values are returned as a packed string separated by \0. Scot R. inSite -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 10:44 AM To: Scot Robnett; [EMAIL PROTECTED] Cc: Felix Geerinckx Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems my point stands :) So out of curiosity, what kind of data structure do you get back with this? If its as I would imagine, then its very close to my own. %hash = ( 'a_name' = 'value', # for single name value pairs 'b_name' = [multiple, values, for, this], # for single name muli-value sets 'c_name' = { 'original_name' = 'filename.jpg', 'size' = '23554', 'location' = '/tmp/fileupload/tmpfile-10028983-88.57.192.3-2783-298374-927837' } # for files ); Of coarse I know the image information is not in there the same way. David - Original Message - From: Scot Robnett [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: Felix Geerinckx [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 8:29 AM Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems Picky, picky. :) You're right, my bad. use CGI; my $q = new CGI; my %params = $q-Vars; SR -Original Message- From: Felix Geerinckx [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:16 AM To: [EMAIL PROTECTED] Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems on Thu, 27 Jun 2002 02:54:10 GMT, [EMAIL PROTECTED] (Scot Robnett) wrote: Its pretty hard to make it more simple than: use Form; my %input = Form(); Let me try. use CGI; %params = $q-Vars; Try again. Your code throws the following error: Can't call method Vars on an undefined value ... -- felix -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
by the way, :) is a smiley, it means I'm joking with you. (reference the last email) With mine, there is nothing beyond what I described. The hash structure I gave you below, that's it. Form.pm takes the input, makes a hash with it, and if you understand how to use a hash and array ref, your set. Its just a hash, no objects, no functions, just a hash. So you use: use Form.pm my %input = Form(); and your done. All the data is sitting in the hash %input. You can at that point do anything you want to with it. Like I say, simple and efficient. If you decide you want to know what you are getting from the cgi input, simply do something to this effect: --- foreach $key(keys(%input)){ # loop through all of the hash elements if (ref($input{$key}) eq ARRAY){ # if this is an array ref local $ = ', '; # change the array delimiter to , temporarily for display print qq^\@{\$input{$key}} = (@{$input{$key}})\n^; # print out the array's values # (make it easy to see which name in the hash this array belongs to) } else { # if its not an array ref print qq^\$input{$key} = $input{$key}\n^; # print out the hash element } } --- Anyway, you will be able to get a closer look at it within a months time if you so choose. David - Original Message - From: Scot Robnett [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 10:03 AM Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems I haven't seen the rest of your module, so I'm not so sure that the point really stands. It might. But, adding one line to initialize the CGI object is really not that big a deal considering the kind of power you have associated with that object. How much extra work do I have to do to utilize the keys and values in your hash vs. the CGI.pm hash? The data structure you get back from CGI.pm is: - Called in a scalar context, a tied hash reference. - Called in a list context, a standard hash containing key/value pairs. - Keys/params with multiple values are returned as a packed string separated by \0. Scot R. inSite -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 10:44 AM To: Scot Robnett; [EMAIL PROTECTED] Cc: Felix Geerinckx Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems my point stands :) So out of curiosity, what kind of data structure do you get back with this? If its as I would imagine, then its very close to my own. %hash = ( 'a_name' = 'value', # for single name value pairs 'b_name' = [multiple, values, for, this], # for single name muli-value sets 'c_name' = { 'original_name' = 'filename.jpg', 'size' = '23554', 'location' = '/tmp/fileupload/tmpfile-10028983-88.57.192.3-2783-298374-927837' } # for files ); Of coarse I know the image information is not in there the same way. David - Original Message - From: Scot Robnett [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: Felix Geerinckx [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 8:29 AM Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems Picky, picky. :) You're right, my bad. use CGI; my $q = new CGI; my %params = $q-Vars; SR -Original Message- From: Felix Geerinckx [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:16 AM To: [EMAIL PROTECTED] Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems on Thu, 27 Jun 2002 02:54:10 GMT, [EMAIL PROTECTED] (Scot Robnett) wrote: Its pretty hard to make it more simple than: use Form; my %input = Form(); Let me try. use CGI; %params = $q-Vars; Try again. Your code throws the following error: Can't call method Vars on an undefined value ... -- felix -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
After all, Hubris is one of St. Larry's Three Cardinal Virtues! So this seems to me to be a properly Perl-ish attitude. - John --- [EMAIL PROTECTED] wrote: ... minded here, I'm just the type of person who if I'm not perfectly happy with the way something works (whether programming or in the real world), I determine whether I can fix it, if I can I do. = Now it's over, I'm dead, and I haven't done anything that I want; or, I'm still alive, and there's nothing I want to do. - They Might Be Giants, http://www.tmbg.com __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
That actually has nothing to do with it. It has everything to do with the strong desire to improve circumstances, be innovative, make the world a better place. If you want to call me arrogant for trying to improve my surroundings, go right ahead, but your tacking the wrong name on me. David - Original Message - From: John Brooking [EMAIL PROTECTED] To: [EMAIL PROTECTED]; Todd Wade [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 12:57 PM Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems After all, Hubris is one of St. Larry's Three Cardinal Virtues! So this seems to me to be a properly Perl-ish attitude. - John --- [EMAIL PROTECTED] wrote: ... minded here, I'm just the type of person who if I'm not perfectly happy with the way something works (whether programming or in the real world), I determine whether I can fix it, if I can I do. = Now it's over, I'm dead, and I haven't done anything that I want; or, I'm still alive, and there's nothing I want to do. - They Might Be Giants, http://www.tmbg.com __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
True. Whew, my hand hurts from all that extra typing. ;) Scot R. -Original Message- From: John Brooking [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 1:50 PM To: Scot Robnett; [EMAIL PROTECTED] Cc: Felix Geerinckx Subject: RE: CGI.pm v/s roll-your-own [WAS:] Displaying Problems See?! Your version just expanded by 50% !! ;-) --- Scot Robnett [EMAIL PROTECTED] wrote: Picky, picky. :) You're right, my bad. use CGI; my $q = new CGI; my %params = $q-Vars; = Now it's over, I'm dead, and I haven't done anything that I want; or, I'm still alive, and there's nothing I want to do. - They Might Be Giants, http://www.tmbg.com __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.372 / Virus Database: 207 - Release Date: 6/20/2002 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
Oh, dear, I was afraid that that message might be misinterpreted! I thought my humor was evident enough by the informal language, but I guess I should have put a smiley on it too. I didn't mean hubris in a bad sense. The sense I get from Larry's use of it (from reading the Camel book), and the sense I meant here, was having enough self-confidence to believe that you *can* do all the things you mention, rather than just putting up with what is handed to you because you're too humble to think that little old you could do better. It might tend towards arrogance in some cases, maybe, especially when unwarranted by the actual talent behind it, but true arrogance connotes more negative personality traits, such as not being open to other points of view or debate, and that's *not* what I meant. I did assume familiarity with Larry's philosophy of Laziness, Impatience, and Hubris as The Basis of All Good Software Design, and maybe I shouldn't have. I'd quote some of this from the Camel book, but I don't have it with me. I would summarize it as good programmers don't like write the same thing over and over, yet if they don't like something they got elsewhere, they'll write something themselves that they like better. I suspect he intentionally chose provocative words to get people's attention, but his claim that they lead to good software design implies that far from being bad traits, he thinks that they are actually good traits, properly applied. I apologize that my message was taken negatively. I meant it positively. I support the spirit of your effort. - John --- [EMAIL PROTECTED] wrote: That actually has nothing to do with it. It has everything to do with the strong desire to improve circumstances, be innovative, make the world a better place. If you want to call me arrogant for trying to improve my surroundings, go right ahead, but your tacking the wrong name on me. David - Original Message - From: John Brooking [EMAIL PROTECTED] To: [EMAIL PROTECTED]; Todd Wade [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 12:57 PM Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems After all, Hubris is one of St. Larry's Three Cardinal Virtues! So this seems to me to be a properly Perl-ish attitude. - John = Now it's over, I'm dead, and I haven't done anything that I want; or, I'm still alive, and there's nothing I want to do. - They Might Be Giants, http://www.tmbg.com __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
No offence taken, I have heard the word hubris before, but I wasn't certain of the meaning, so naturally I looked it up (now that you mention it, I have heard that quote out of the Camel book before). At first I thought it was a compliment the way you said it and all, but after seeing dictionary.com's definition, I wondered. Well thank you for the compliment. David - Original Message - From: John Brooking [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 3:39 PM Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems Oh, dear, I was afraid that that message might be misinterpreted! I thought my humor was evident enough by the informal language, but I guess I should have put a smiley on it too. I didn't mean hubris in a bad sense. The sense I get from Larry's use of it (from reading the Camel book), and the sense I meant here, was having enough self-confidence to believe that you *can* do all the things you mention, rather than just putting up with what is handed to you because you're too humble to think that little old you could do better. It might tend towards arrogance in some cases, maybe, especially when unwarranted by the actual talent behind it, but true arrogance connotes more negative personality traits, such as not being open to other points of view or debate, and that's *not* what I meant. I did assume familiarity with Larry's philosophy of Laziness, Impatience, and Hubris as The Basis of All Good Software Design, and maybe I shouldn't have. I'd quote some of this from the Camel book, but I don't have it with me. I would summarize it as good programmers don't like write the same thing over and over, yet if they don't like something they got elsewhere, they'll write something themselves that they like better. I suspect he intentionally chose provocative words to get people's attention, but his claim that they lead to good software design implies that far from being bad traits, he thinks that they are actually good traits, properly applied. I apologize that my message was taken negatively. I meant it positively. I support the spirit of your effort. - John --- [EMAIL PROTECTED] wrote: That actually has nothing to do with it. It has everything to do with the strong desire to improve circumstances, be innovative, make the world a better place. If you want to call me arrogant for trying to improve my surroundings, go right ahead, but your tacking the wrong name on me. David - Original Message - From: John Brooking [EMAIL PROTECTED] To: [EMAIL PROTECTED]; Todd Wade [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Thursday, June 27, 2002 12:57 PM Subject: Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems After all, Hubris is one of St. Larry's Three Cardinal Virtues! So this seems to me to be a properly Perl-ish attitude. - John = Now it's over, I'm dead, and I haven't done anything that I want; or, I'm still alive, and there's nothing I want to do. - They Might Be Giants, http://www.tmbg.com __ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: CGI.pm v/s roll-your-own [WAS:] Displaying Problems
On Thu, 27 Jun 2002, [EMAIL PROTECTED] opined: :With mine, there is nothing beyond what I described. The hash structure I gave you :below, that's :it. Form.pm takes the input, makes a hash with it, and if you understand how to use :a hash and :array ref, your set. Its just a hash, no objects, no functions, just a hash. : :So you use: : :use Form.pm :my %input = Form(); : :and your done. All the data is sitting in the hash %input. You can at that point do :anything you :want to with it. : :Like I say, simple and efficient. can you limit upload sizes? can you disable uploads altogether? how does it handle errors, especially during file uploads? can you exclude undefined parameters from the parameter list? does it have a debug mode? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]