> Interesting.... When I run the script on my windows box > (5.6.1) I get this output > DEBUG : NON PRINT ACHAR -011747 - > DEBUG : NON PRINT ACHAR -Eco-Liner w/Att A=30-35 B=23-29cm - > DEBUG : NON PRINT ACHAR -139.45- > > Same script same source file run on sco openserver 5 (5.6.0) > I get this output > DEBUG : NON PRINT ACHAR -011747 - > DEBUG : NON PRINT ACHAR -Eco-Liner w/Att A=30-35 B=23-29cm - > DEBUG : NON PRINT ACHAR -139.45- > DEBUG : NON PRINT ACHAR -\xd20- > > any ideas on where this came from?
I don't have any idea where it's from. I'd say if you could delete that entry from the array or Find out what the regex equivalent is and delete it from each line or transform the actual $line into the '\xd20' version, Delete any xd* and don't use the line is it's empty after that. > > > > -----Original Message----- > > From: Dan Muey [mailto:[EMAIL PROTECTED]] > > Sent: Thursday, January 16, 2003 11:22 AM > > To: Paul Kraus; Perl > > Subject: RE: Where is the new line coming from. > > > > > > > attached is a copy of the excel file if it helps. > > > > I see it now. > > It's probably some odd unprintable character. > > You could try somehting like this that will change unprintable > > characters to their viewable equivalent > > ( ascii, hex?? I can't remember.) > > But I got his form someone a while ago. > > > > ($tmp = $line) =~ s/([^\x20-\x7E])/'\x' . sprintf "%x20", > ord $1/ge; > > print "DEBUG : NON PRINT ACHAR -$tmp- <br> \n"; > > > > So if you run this and get soemthing like : > > DEBUG : NON PRINT ACHAR -my sting %n20- then you can look up and see > > what the regex equivalent of %n20 is and kill it all the way > > to the bank. > > > > Try that and see. > > > > Dan > > > > > > > > > -----Original Message----- > > > > From: Paul Kraus [mailto:[EMAIL PROTECTED]] > > > > Sent: Thursday, January 16, 2003 11:03 AM > > > > To: 'Dan Muey'; 'Perl' > > > > Subject: RE: Where is the new line coming from. > > > > > > > > > > > > come to think of it. This "newline" I am getting must > be a result > > > > of windows just dropping my prompt to the next line. So > I assumed > > > > it was there... Stupid me. I am used to Linux which does not do > > > > this in the shell. > > > > > > > > Ok then this brings me full circle. > > > > When I run this program on UNIX it makes an excel spread sheet > > > > that has little square strange characters at the end of > every row > > > > in the last cell. I assumed they where new lines but I > have ruled > > > > this out as I am not printing any new lines. Any idea on how to > > > > fix this? It works in windows but not on my sco box. > > > > > > > > #!/usr/bin/perl > > > > > > > > open IPO,('ipo.txt'); > > > > $count=2; > > > > $lineref=['PEL Supply Company - IPO Price List', > > > > ['Item Code','Description','List','Vendor']]; > > > > $addline = sub {$worksheet->write_row($count,0,$lineref)}; > > > > > > > > #setup excel spread sheet > > > > use Spreadsheet::WriteExcel; > > > > my $workbook = Spreadsheet::WriteExcel->new("ipo.xls"); > > > > $worksheet = $workbook->addworksheet(); > > > > $format1 = $workbook->addformat(); > > > > $format2 = $workbook->addformat(); > > > > $format3 = $workbook->addformat(); > > > > $format4 = $workbook->addformat(); > > > > > > > > #Format 1 (Header Row: Bold, BG Yellow, Bottom Border) > > > > $format1->set_bold(); $format1->set_bg_color('yellow'); > > > > $format1->set_bottom(); > > > > > > > > #Format 2 (List Column Right justified set to currency) > > > > $format2->set_align('right'); $format2->set_num_format(8); > > > > > > > > #Format 3 (List Column Header - Bold, Yel BG, Bottom > Border, Right > > > > Justified) $format3->set_bold(); > $format3->set_bg_color('yellow'); > > > > $format3->set_bottom(); $format3->set_align('right'); > > > > > > > > #Format 4 > > > > $format4->set_bold(); > > > > $format4->set_bg_color('yellow'); > > > > $format4->set_merge(); > > > > > > > > > > > > #Format Columns > > > > $worksheet->set_column(0,0, 25); > $worksheet->set_column(1,1, 44); > > > > $worksheet->set_column(2,2, 10,$format2); > > > > $worksheet->set_column(3,3, 15); $worksheet->freeze_panes(2,0); > > > > > > > > #Write Header Row $worksheet->write(0,0,$lineref->[0],$format4); > > > > $worksheet->write_blank(0,1,$format4); > > > > $worksheet->write_blank(0,2,$format4); > > > > $worksheet->write_blank(0,3,$format4); > > > > > > > > $worksheet->write(1,0,$lineref->[1]->[0],$format1); > # Item Code > > > > $worksheet->write(1,1,$lineref->[1]->[1],$format1); # Item > > > > Description > > > > $worksheet->write(1,2,$lineref->[1]->[2],$format3); > # Item List > > > > $worksheet->write(1,3,$lineref->[1]->[3],$format1); # > > Vendor Code > > > > > > > > $lineref = \@line; > > > > > > > > while (<IPO>){ > > > > chomp; > > > > @line=split /\|/,$_; > > > > $line[2]=~s/ //g; > > > > &$addline; > > > > $count++; > > > > } > > > > > > > > > > > > > -----Original Message----- > > > > > From: Dan Muey [mailto:[EMAIL PROTECTED]] > > > > > Sent: Thursday, January 16, 2003 10:49 AM > > > > > To: Paul Kraus; Perl > > > > > Subject: RE: Where is the new line coming from. > > > > > > > > > > > > > > > > I am reading in a text file that has input similar to this. > > > > > > date|data|data|data\n > > > > > > > > > > > > I then read the file in and using a while loop I chomp > > > > off the new > > > > > > line. while (<IPO>){ > > > > > > chomp; > > > > > > @line=split /\|/,$_; > > > > > > $line[2]=~s/ //g; > > > > > > > > > > Do you mean $line[3] since that is the last one in the > > > array in the > > > > > example above? > > > > > date1|data2|data3|data4\n would become > > > > > 0 data1 > > > > > 1 data2 > > > > > 2 data3 > > > > > 3 data4\n > > > > > If so remove any newlines and space also : > > > > > $line[3] =~ s/\n|\r| //g; > > > > > Or use '\s' instead of ' ' for the space. > > > > > > > > > > Dan > > > > > > print "$_" foreach (@line); > > > > > > last; > > > > > > $count++; > > > > > > last if ($count == 7); > > > > > > } > > > > > > > > > > > > Here is the mystery. the output has a newline at the end > > > > of it. It > > > > > > should print "data data data data" and then my next > > > > prompt should be > > > > > > right here. instead it prints > > > > > > "data data data data > > > > > > "and my prompt is here. > > > > > > > > > > > > If I remove the initial chomp then I get a double space > > > > at the end. > > > > > > > > > > > > No matter what I print the last element gets a new > line ????? > > > > > > > > > > > > Example if I > > > > > > print "$line[0] $line[1]"; > > > > > > then right at the end of the print statement is a new > > > > line and the > > > > > > output is identical to what I previously described. > the last > > > > > > elements always inherits a new line. It driving me > > > > crazy!!! thanks > > > > > > in advance :) > > > > > > > > > > > > > > > > > > Paul Kraus > > > > > > Network Administrator > > > > > > PEL Supply Company > > > > > > 216.267.5775 Voice > > > > > > 216-267-6176 Fax > > > > > > www.pelsupply.com > > > > > > > > > > > > > > > > > > -- > > > > > > 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]