2011-07-23 74 views
0

我正在嘗試Mac上的Perl。 我必須閱讀一個RTF文本文件。該文件的內容是「36」(沒有雙引號)。這就是它,只有兩個字符。無法在Mac上使用Perl讀取RTF文件

這是我必須閱讀的代碼。

#!/usr/bin/perl 
use strict; 
use warnings; 

my $file = "verInfo.rtf"; 

unless(open FILE, $file) { 
    # Die with error message 
    # if we can't open it. 
    die "\nUnable to open $file\n"; 
} 

my $oldversion = <FILE>; 

print "conent is $oldversion"; 

close FILE; 

記住我要的是從文件中讀取值36,並將其存儲在$ oldversion

一個整數,但是,當我讀文件和打印,其打印以下

conent is {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 

我不是能看懂36

+0

SO社區致力於爲您提供答案。請點擊投票計數下方的複選框以接受其中一個答案。它也會提升你自己的代表分數。 – Zaid

+0

我從來沒有見過像以前那樣打開的文件...過於習慣於打開我的$ fileHandle,'<',$ file或死「無法打開$ file:$!\ n」;' – Zaid

+0

我沒有找到一個「接受答案」按鈕:( – mac

回答

2

您沒有閱讀文本文件,您正在閱讀RTF文件。你用TextEdit創建了這個文件,對嗎?如果您希望將文件保存爲純文本格式,則在保存文本之前,TextEdit將文本保存爲文本/ rtf而不是文本/純文本格式,您應該使用「格式化|製作純文本」(AKA Shift-Cmd-T)那麼你會得到一個簡單的文本文件,只有你的「36」。

+0

雅謝謝你的答案,我在終端創建一個TX文件爲vi verInfo.txt,它的工作。再次感謝 – mac

2

的文字是有:

{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 
               ^^ 

你有一個RTF文件。使用an RTF parser

+0

謝謝,我使用.txt,它的工作:) – mac