gemini://gemini.conman.org/boston/2005/01/14.1
I do not handle stress well.
Wednesday was bad.
Yesterday wasn't that bad, but I fell asleep almost immediately upon coming home, and still managed to get up late.
Today is bad.
As if osCommerce [1] wasn't bad enough (that site … how can anybody use that site? It's the most horribly designed site I've come across) I now get to debug the Dansie Shopping Cart [2].
Woot!
Only 102 warnings when run with /usr/bin/perl -w (and since perl spits out those warnings when the script runs, it confuses Apache [3]).
Running it without the warnings option gives me:
": No such file or directory
I also like this bit:
>
```
# May not be used without purchasing a license. Do not attempt to run this
# script on a site other than which it was licensed for.
# Modification of this script other than:
# 1. Adjusting the perl path in the first line above.
# 2. Or setting the $vars variable below.
# May void your right to technical support and subject you to legal action.
```
And the customer is upset because she paid for this and she doesn't understand it worked on four other servers and why can't I fix it and … and … and … and …
According to this, I can't debug their 4,000 line script (technically, it was one line; all the formatting had been removed to protect the guilty) without subjecting her to possible legal liability and voiding her warrentee.
The conversation went downhill from there.
The upshot: the customer doesn't care—she wants it working.
So I get the job of debugging some wonderful perl code.
[1] http://www.oscommerce.org/
[2] http://www.dansie.net/cart.html
gemini://gemini.conman.org/boston/2005/01/14.2
I'm attempting to debug the shopping cart from hell [1]. I finally got rid of the warnings, and the script is generating the following:
**Set-Cookie:** shopper_id=91548; path=/; > **Content-type:** text/html >
<HTML> …
But Apache [2] still doesnt' like it. I poke around and fine a test.pl script:
>
```
#!/usr/bin/perl
print "Hello world\n";
```
Okay. I can build on this, adding stuff to see what Apache might be complaing about. I run this script from the command line and get “: bad interpreter: No such file or directory”.
Excuse me?
>
```
# which perl
/usr/bin/perl
# more test.pl
#!/usr/bin/perl
print "Hello world\n";
```
Huh?
I write my own version of this:
>
```
#!/usr/bin/perl
print "Hello world\n";
```
And it worked.
Me: 0. Desk 2: [3]
Okay, probably some invisible character in test.pl that's giving the perl interpreter fits. Delete #!/usr/bin/perl and retype it.
>
```
: bad interpreter: No such file or directory
```
Me: 0. Desk 3: [4]
Much mucking around later (and remember, this is a side trek from what I'm supposed to be doing—debugging some comercial perl script) I find out that not only is test.pl in the Microsoft text format, but that the version of vi (vi!) I'm using is “smart” enough to deal with the Microsoft text format and keep the file in that format!
Me: 0. Desk 4: [5]
XXXX this, I'm going home.