2013-12-06 2 views
0

Я пытаюсь запустить скрипт perl 'googly.pl' из командной строки, и он дает некоторые ошибки. Вот сценарий и ошибки. Я повторно проверил скрипт, но я все еще не могу успешно запустить скрипт.выполнение скрипта perl

#!C:\Strawberry\perl\bin\perl.exe 
# googly.pl 
# A typical Google Web API Perl script 
# Usage: perl googly.pl <query> 
# Your Google API developer's key 
my $google_key=''; 
# Location of the GoogleSearch WSDL file 
my $google_wdsl = "C:/vhosts/phpcs5/GoogleSearch.wsdl"; 
use strict; 
# Use the SOAP::Lite Perl module 
use SOAP::Lite; 
# Take the query from the command-line 
my $query = shift @ARGV or die "Usage: perl googly.pl 
<query>\n"; 
# Create a new SOAP::Lite instance, feeding it 
GoogleSearch.wsdl 
my $google_search = SOAP::Lite->service("file:$google_wdsl"); 
# Query Google 
my $results = $google_search -> 
doGoogleSearch(
$google_key, $query, 0, 10, "false", "", "false", 
"", "latin1", "latin1" 
); 
# No results? 
@{$results->{resultElements}} or exit; 
# Loop through the results 
foreach my $result (@{$results->{resultElements}}) { 
# Print out the main bits of each result 
print 
join "\n", 
$result->{title} || "no title", 
$result->{URL}, 
$result->{snippet} || 'no snippet', 
"\n"; 
} 

Ошибка

  1. Запятая, кажется, отсутствует в C: /vhosts/phpcs5/googly.pl линии 19.
  2. ошибки синтаксиса в C: /vhosts/phpcs5/googly.pl линии 17, рядом с «моим WSDL»
  3. Глобального символ «$ GOOGLE_SEARCH» требуют явного имени пакета в C: /vhosts/phpcs5/googly.pl линии 17
  4. Глобальные символ «$ GOOGLE_SEARCH» требует явного имени пакета в C:/vhosts/phpcs5/googly.pl строка 19
  5. Ошибка синтаксиса в C: /vhosts/phpcs5/googly.pl линия 20, возле «doGoogleSearch»
  6. Исполнение C: /vhosts/phpcs5/googly.pl прервана из-за ошибки компиляции.
+2

Похоже, вы вставили ее откуда-то, вводя новые линии, где они не должны быть. – slim

+0

В дополнение к нижеприведенному ответу предлагается предложение . U может установить значение «C: \ Strawberry \ perl \ bin \ perl.exe» в переменной окружения и использовать его. Также поместите полуколоны туда, где это необходимо. – pkm

+0

@ashish: строка shebang программы Perl не влияет на Windows, за исключением того, что любые ключи командной строки выполняются. Windows не использует его для поиска исполняемого файла Perl. На самом деле оболочка не будет обрабатывать ничего, кроме файлов команд оболочки. – Borodin

ответ

4
my $query = shift @ARGV or die "Usage: perl googly.pl 
<query>\n"; 
# Create a new SOAP::Lite instance, feeding it 
GoogleSearch.wsdl 
my $google_search = SOAP::Lite->service("file:$google_wdsl"); 

должен быть

my $query = shift @ARGV or die "Usage: perl googly.pl <query>\n"; 
# Create a new SOAP::Lite instance, feeding it GoogleSearch.wsdl 
my $google_search = SOAP::Lite->service("file:$google_wdsl"); 
Смежные вопросы