It's not actually ending up with a ? character at the end - it's ending up
with a new line character. Your terminal is (as Andrew implied) displaying
a ? character for a character code outside the range of characters it knows
it can display.

Regards,

Carl

On 19 March 2015 at 11:19, Andrew Solomon <and...@geekuni.com> wrote:

> No - that one's a mystery to me:) I suspect it's something to do with the
> terminal and character encoding
>
>
> http://stackoverflow.com/questions/5306153/how-to-get-terminals-character-encoding
>
> Andrew
>
>
> On Thu, Mar 19, 2015 at 7:41 AM, Satya Prasad Nemana <spn...@gmail.com>
> wrote:
>
>> Great Andrew.
>> it is all good now.
>>
>> Could you please tell how new line ended up as ? in the file name
>>
>> Thanks,
>> Satya
>>
>>
>> On 19 March 2015 at 12:53, Andrew Solomon <and...@geekuni.com> wrote:
>>
>>> my $logFileName="log_ping_".`date +"%d_%b_%y_%H_%M_%S"`;
>>>
>>> should be followed by
>>>
>>> chomp($logFileName)
>>>
>>> otherwise there's a trailing newline character in $logFileName on
>>> account of the call to date
>>>
>>> Andrew
>>>
>>> On Thu, Mar 19, 2015 at 6:08 AM, Satya Prasad Nemana <spn...@gmail.com>
>>> wrote:
>>>
>>>> Hi
>>>>
>>>> I have a small program listed below where i am writing ping results to
>>>> a file.
>>>> The program works file except that the file name in the output file is
>>>> coming as log_ping_19_Mar_15_11_27_49? (please note the ? at the end of the
>>>> name)
>>>>
>>>> The initial output looks like
>>>> bats3 snemana/perlprogs> perl pingTest.pl hostInfo.txt
>>>>
>>>> Logfile is log_ping_19_Mar_15_11_38_53
>>>>
>>>> File name is hostInfo.txt
>>>>
>>>> .............................
>>>>
>>>> Could someone please tell why the ? is getting added to the file name
>>>> although it looks fine in the initial print of the file name.
>>>>
>>>> use Data::Dumper;
>>>> use strict;
>>>> use warnings;
>>>> my $numberOfPingPackets=1;
>>>>
>>>> my $fullFileName=$ARGV[0];
>>>> my $logFileName="log_ping_".`date +"%d_%b_%y_%H_%M_%S"`;
>>>> print "\nLogfile is $logFileName";
>>>> print ("\nFile name is $fullFileName");
>>>> open FILE, $fullFileName or die $!;
>>>> my $logFile;
>>>> open $logFile, '>', $logFileName or die $!;
>>>> my @fileContents=<FILE>;
>>>> print ("\nFile contents are ".Dumper(@fileContents));
>>>> for(my $i=0;$i < @fileContents; $i++)
>>>> {
>>>> my $line=$fileContents[$i];
>>>> my @data=split(/\t/,$line);
>>>> my $host=$data[0];
>>>> my $ip=substr($data[1],0,-1);
>>>> my @pingResults=`ping -c $numberOfPingPackets $ip`;
>>>> my $succesString="$numberOfPingPackets packets transmitted,
>>>> $numberOfPingPackets received, 0% packet loss";
>>>> my $index=3+$numberOfPingPackets;
>>>> if(index($pingResults[$index],$succesString) >= 0)
>>>> {
>>>>     print "\nPing to host $host ip $ip is successful";
>>>>     print $logFile "\nPing to host $host ip $ip is successful";
>>>> }
>>>> else
>>>> {
>>>>     print "\nPing to host $host ip $ip is failure";
>>>>     print $logFile "\nPing to host $host ip $ip is failure";
>>>> }
>>>> }
>>>> close $logFile;
>>>>
>>>>
>>>> --
>>>> Satya Prasad
>>>>
>>>
>>>
>>>
>>> --
>>> Andrew Solomon
>>>
>>> Mentor@Geekuni http://geekuni.com/
>>> http://www.linkedin.com/in/asolomon
>>>
>>
>>
>>
>> --
>> Satya Prasad
>>
>
>
>
> --
> Andrew Solomon
>
> Mentor@Geekuni http://geekuni.com/
> http://www.linkedin.com/in/asolomon
>

Reply via email to