В Perl существует много неочевидных функций.
, Например, Вы знали, что может быть пространство после символа?
$ perl -wle 'my $x = 3; print $ x'
3
Или что можно дать числовые имена нижних индексов при использовании символьных ссылок?
$ perl -lwe '*4 = sub { print "yes" }; 4->()'
yes
существует также "bool" квази оператор, тот возврат 1 для истинных выражений и пустой строки для лжи:
$ perl -wle 'print !!4'
1
$ perl -wle 'print !!"0 but true"'
1
$ perl -wle 'print !!0'
(empty line)
Другой интересный материал: с use overload
можно перегрузить строковые литералы и числа (и например сделать их BigInts или безотносительно).
Многие из этих вещей на самом деле документируются где-нибудь или следуют логически от зарегистрированных функций, но тем не менее некоторые не очень хорошо известны.
Обновление : Другой хороший. Ниже q{...}
конструкции заключения в кавычки были упомянуты, но Вы знали, что можно использовать буквы в качестве разделителей?
$ perl -Mstrict -wle 'print q bJet another perl hacker.b'
Jet another perl hacker.
Аналогично можно записать регулярные выражения:
m xabcx
# same as m/abc/
Внимательно прочтите лицензии, и Bing, и Google Maps требуют денег, если вы используете их в коммерческих целях.
Например, прочтите это сообщение в блоге:
http://www.47hats.com/2009/07/google-maps-the-10k-gotcha/
Однако, если вы используете его для своего некоммерческого приложения, это бесплатно.
Посмотрите на использование OpenStreeMaps . Это совершенно бесплатно, и до сих пор я был очень впечатлен им. В моем районе они более точны и подробны, чем карты Google.
В Великобритании карты OS также бесплатны.
Похоже, вы находитесь на этапе принятия решения по проекту и взвешиваете плюсы и минусы различных фреймворков. Из-за того, что коммерческие приложения разрабатываются с использованием карт (поставляемых Google, Bing, Yahoo или любым другим поставщиком карт), возможно, стоит использовать код библиотеки под названием MapStraction .
Это позволяет вам легко обменивать и менять поставщиков карт в зависимости от коммерческих требований и / или требований заказчика. Он также обеспечивает единообразный интерфейс, поэтому смена провайдера карты на полпути проекта не представляет большого труда.