ls -1tr | rename -vn 's/.*/our $i;if(!$i){$i=1;} sprintf("%04d.jpg", $i++)/e'
rename -vn - удалить n для режима без теста
{$ i = 1;} - номер запуска управления
"% 04d.jpg" - контрольный счет ноль 04 и установить выходное расширение .jpg
Если Вы просто ищете базу данных низкого уровня access— Вы подаете его любая строка SQL (дополнительно с заполнителями и связываете значения), и это выполняет Ваш запрос и дает Вам, поддерживают results— тогда да, DBI является Вашим лучшим выбором, безусловно.
, Если Вы хотите высокоуровневый интерфейс (т.е. тот, который требует минимального использования необработанного SQL в Вашем коде) тогда существует несколько ORMs ( объектно-реляционные картопостроители ) доступны для Perl. Проверьте страница ORM в Perl 5 wiki Основы Perl для получения дополнительной информации и ссылках. (Если Вы хотите справку, выбирающую среди них, или имеете конкретные вопросы, Вы могли бы сузить фокус этого вопроса или возможно отправить другой.)
DBI является "низкоуровневым" интерфейсом между Perl и DBMS. Это - в значительной степени единственный реалистический выбор для того, чтобы сделать это. Сопоставимый с JDBC в Java. Вы были бы сумасшедшими (или имели бы очень определенный вариант использования) выбрать что-либо кроме DBI для Вас, низкий уровень взаимодействует через интерфейс между Perl и базой данных.
вдобавок к DBI, существуют различные объектные/реляционные картопостроители, которые делают работу с базой данных намного легче и более чистой.
Некоторые общие/больше популярные -
Если Вы приняли решение использовать плоскость DBI
для задачи, которой не нужен ORM, я настоятельно рекомендую, чтобы Вы смотрели на DBIx:: Простой .
Это не замена, а очень хорошо разработанный API сверху DBI
, который делает простые вещи простыми и сложными вещами возможный, не теряя ни одной гибкости DBI
.
Сделал Вы когда-нибудь находили, что необходимо было искать по-видимому простые вещи в DBI
документация, как получение результатов запроса как arrayref (строки) хешей (столбцы и их значения)? С DBIx::Simple
это просто:
# DBI
my $rows = $dbh->selectall_arrayref($sql, { Slice => {} });
# tell it we want "hashes" (yuck!) ^^^^
# DBIx::Simple
my $rows = $db->query($sql)->hashes; # does the same as the above code underneath!
Смотрят на эти примеры для больше. Кроме того, интеграция с SQL:: Краткий обзор делает простые запросы бризом. Это использует его во всем моем коде, где я использовал бы DBI
прежде, и я не оглядываюсь назад.
Стоит указать что подавляющее большинство "высокоуровневых" интерфейсов (как SQL:: Краткий обзор) и (DBIx:: Простой), используют сам DBI, на самом деле выполняя запросы. DBI является в значительной степени принятым стандартным методом для соединения с базой данных в Perl.
Если Вы хотите работать с объектами (с самоанализом!), смотрите на Fey:: ORM, который реализует ORM на основе Американского лося. Это, также имеет очень SQL как синтаксис, таким образом, это соответствует моему основанному на RDBMS мозгу немного лучше, чем некоторые из других платформ ORM.
По-моему, DBI является действительно хорошим выбором. Я использовал DBD:: mysql активно и найденный им, чтобы быть действительно хорошим решением.
Мы используем модуль DBI во всех наших проектах также. Много раз мы создаем пользовательский пакет сверху его для определенного приложения, но под этим базовый модуль DBI. И часто просто легче использовать функции модуля DBI непосредственно.
DBI является большим, но качество модулей DBD может варьироваться. Я был укушен 'функцией' в одной из версий DBD:pg. Это любило загружать полные данные Вашего результата в память, а не межпоело по нему с курсорами.
Как обычно - программист Caveat.
Скалы DBI! но для надлежащего полнофункционального ORM, который является быстрым движением для DBIx:: Класс все время.