Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Можно использовать отладчик жемчуга на тривиальной программе, как так:
perl -de1
, Кроме того, существует Alexis Sukrieh Консольное приложение Perl, но я не использовал его.
См. также Стильный REPL (для GNU Emacs) http://blog.jrock.us/articles/Stylish%20REPL.pod
Сепия и PDE имеют также собственный REPLs (для GNU Emacs).
Также ищите ptkdb на CPAN: http://search.cpan.org/search?query=ptkdb&mode=all
Вы могли изучить psh здесь: http://gnp.github.io/psh/
Это - полное на оболочке (можно использовать его в замене удара, например), но синтаксис жемчуга использования.. таким образом, можно создать методы на лету и т.д.
Perl не имеет консоли, но отладчик может использоваться в качестве один. В командной строке, типе perl -de 1
. (Значение "1" не имеет значения, это - просто допустимый оператор, который ничего не делает.)
существует также несколько опций для оболочка Perl .
Для получения дополнительной информации читавший perlfaq3.
Я всегда делал:
perl -wlne'eval;print$@if$@'
С 5,10, я переключился на:
perl -wnE'say eval()//$@'
Можно всегда просто заскакивать во встроенный отладчик и команды выполнения оттуда.
perl -d -e 1
Нет интерактивной консоли для Perl, встроенного как Python, делает. Можно однако использовать Отладчик Perl, чтобы сделать, отладка связала вещи. Вы включаете его с-d опцией, но Вы могли бы хотеть проверить 'человека perldebug' для приобретения знаний об этом.
После небольшого количества гугления, существует отдельный проект, который реализует консоль Perl, которую можно найти по телефону http://www.sukria.net/perlconsole.html .
Hope это помогает!
Я использую командную строку в качестве консоли:
$ perl -e 'print "JAPH\n"'
Тогда я могу использовать мой удар история для возвращения старых команд. Это не сохраняет состояние, как бы то ни было.
Эта форма является самой полезной, когда Вы хотите протестировать "одну небольшую вещь" (как при ответе на вопросы Perl). Часто, я нахожу, что эти команды становятся очищенными дословно в сценарий оболочки или make-файл.
Я думаю, что Вы спрашиваете о REPL (Чтение, Оцените, Печать, Цикл), интерфейс к жемчугу. Существует несколько способов сделать это:
Мало того, что Matt Trout писал статью о REPL, он на самом деле записал один - Devel:: REPL
я использовал его немного и это работает довольно хорошо, и это находится в процессе активного развития.
BTW, я понятия не имею, почему кто-то кивнул вниз человек, который упомянул, что использовал "жемчуг-e" от консоли. Это не действительно REPL, верный, но это фантастически полезно, и я использую все это время.
Я записал сценарий, который я называю "psh":
#! /usr/bin/perl
while (<>) {
chomp;
my $result = eval;
print "$_ = $result\n";
}
Независимо от того, что Вы вводите, это оценивает в Perl:
> gmtime(2**30)
gmtime(2**30) = Sat Jan 10 13:37:04 2004
> $x = 'foo'
$x = 'foo' = foo
> $x =~ s/o/a/g
$x =~ s/o/a/g = 2
> $x
$x = faa