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?


> -----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]

Reply via email to