Если вы не можете четко описать свои данные и желаемый результат, вы не сможете закодировать их - простой проект - хороший способ начать использовать новый язык.
Позвольте мне представить простой метод, который вы можете использовать для производства кода на любом языке, знаете ли вы это или нет. Этот метод работает только для небольших проектов. Вам нужно будет заранее планировать крупные проекты.
Как написать программу:
- Откройте ваш текстовый редактор и запишите, какие данные у вас есть. Сделать каждую строку комментарием
- Опишите желаемые результаты.
- Начните описывать шаги, необходимые для преобразования ваших данных в желаемую форму.
Заполнены номера 1 и 2:
#!/usr/bin perl
use strict;
use warnings;
# Read data from multiple files and combine it into one file.
# Source files:
# Field definitions: has a list of field names, one per line.
# Data files:
# * Each data file has a string of digits.
# * There is a one-to-one relationship between the digits in the data file and the fields in the field defs file.
#
# Results File:
# * The results file is a CSV file.
# * Each field will have one row in the CSV file.
# * The first column will contain the name of the field represented by the row.
# * Subsequent values in the row will be derived from the data files.
# * The order of subsequent fields will be based on the order files are read.
# * However, each column (2-X) must represent the data from one data file.
Теперь, когда вы знаете, что у вас есть, и куда вам нужно идти, вы можете выяснить, что нужно сделать программе, чтобы попасть туда - это шаг 3:
Вы знаете, что вам нужен список полей, поэтому сначала получите его:
# Get a list of fields.
# Read the field definitions file into an array.
Поскольку писать CSV проще всего ориентированным на строки способом, вам нужно будет обработать все ваши файлы перед созданием каждой строки. Поэтому вам понадобится место для хранения данных.
# Create a variable to store the data structure.
Теперь мы читаем файлы данных:
# Get a list of data files to parse
# Iterate over list
# For each data file:
# Read the string of digits.
# Assign each digit to its field.
# Store data for later use.
У нас есть все данные в памяти, теперь запишите вывод:
# Write the CSV file.
# Open a file handle.
# Iterate over list of fields
# For each field
# Get field name and list of values.
# Create a string - comma separated string with field name and values
# Write string to file handle
# close file handle.
Теперь вы можете начать преобразовывать комментарии в код. Вы можете иметь от 1 до 100 строк кода для каждого комментария. Вы можете обнаружить, что что-то, что вам нужно сделать, очень сложно, и вы не хотите это делать в данный момент. Создайте фиктивную подпрограмму для выполнения сложной задачи и игнорируйте ее, пока все остальное не будет сделано. Теперь вы можете решить эту сложную, непростую подзадачу самостоятельно.
Так как вы только изучаете Perl, вам нужно нажать на документацию, чтобы узнать, как выполнить каждую из подзадач, представленных в комментариях, которые вы написали. Лучший ресурс для этого вида работы - список функций по категориям в perlfunc . Руководство по синтаксису Perl также пригодится. Поскольку вам нужно работать со сложной структурой данных, вам также нужно прочитать из Data Structures Cookbook .
Вам может быть интересно, как, черт возьми, вы должны знать, какие perldoc-страницы вам следует читать для данной проблемы. Статья о Perlmonks под названием Как сделать RTFM представляет собой хорошее введение в документацию и как ее использовать.
Самое замечательное, если вы застряли, у вас есть код, которым вы можете поделиться, когда обращаетесь за помощью.